Merge "Add wfDeprecated to wfMsg* methods from 1.21 on"
authorNikerabbit <niklas.laxstrom@gmail.com>
Wed, 5 Dec 2012 13:37:45 +0000 (13:37 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 5 Dec 2012 13:37:45 +0000 (13:37 +0000)
48 files changed:
HISTORY
RELEASE-NOTES-1.20 [deleted file]
includes/AutoLoader.php
includes/ChangesList.php
includes/UIDGenerator.php [new file with mode: 0644]
includes/cache/MessageCache.php
includes/db/IORMTable.php
includes/db/ORMTable.php
includes/diff/DifferenceEngine.php
includes/installer/DatabaseUpdater.php
includes/job/JobQueueDB.php
includes/parser/Parser.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBar.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesCa.php
languages/messages/MessagesCs.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesEs.php
languages/messages/MessagesEu.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGd.php
languages/messages/MessagesGl.php
languages/messages/MessagesHe.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKo.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLad.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesNn.php
languages/messages/MessagesPa.php
languages/messages/MessagesPms.php
languages/messages/MessagesPs.php
languages/messages/MessagesRo.php
languages/messages/MessagesSi.php
languages/messages/MessagesSl.php
languages/messages/MessagesVi.php
languages/messages/MessagesYo.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/tables.sql
resources/mediawiki.special/mediawiki.special.changeslist.css
tests/parser/parserTests.txt

diff --git a/HISTORY b/HISTORY
index ab56b37..8d232f3 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,5 +1,366 @@
 Change notes from older releases. For current info see RELEASE-NOTES-1.21.
 
+== MediaWiki 1.20 ==
+
+=== PHP 5.3 now required ===
+Since 1.20, the lowest supported version of PHP is now 5.3.2. Please
+upgrade PHP if you have not done so prior to upgrading MediaWiki.
+
+=== Configuration changes in 1.20 ===
+* $wgGitRepositoryViewers defines a mapping from Git remote repository to the
+  Gitweb instance URL used in Special:Version.
+* `$wgUsePathInfo = true;` is no longer needed to make $wgArticlePath work on servers
+  using like nginx, lighttpd, and apache over fastcgi. MediaWiki now always extracts
+  path info from REQUEST_URI if it's available.
+* The user right 'upload_by_url' is no longer given to sysops by default.
+  This only affects installations which have $wgAllowCopyUploads set to true.
+* Removed f-prot support from $wgAntivirusSetup.
+* New variable $wgDBerrorLogTZ to provide dates in the error log in a
+  different timezone than the wiki timezone set by $wgLocaltimezone.
+* New variables $wgDBssl and $wgDBcompress to enable SSL and compression for database
+  connections, if either are available for the selected DB type.
+* $wgUseCombinedLoginLink now defaults to false, making MediaWiki output separate
+  login and create account links by default.
+
+=== New features in 1.20 ===
+* Added TitleIsAlwaysKnown hook which gets called when determining if a page exists.
+* Added NamespaceIsMovable hook which gets called when determining if pages in a
+  certain namespace can be moved.
+* Added SpecialPageBeforeExecute hook which gets called before SpecialPage::execute.
+* Added SpecialPageAfterExecute hook which gets called after SpecialPage::execute.
+* Added ORMTable, ORMRow and ORMResult classes for additional abstraction of
+  database interaction.
+* Added CacheHelper and associated SpecialCachedPage and CachedAction helper classes.
+* (bug 32341) Add upload by URL domain limitation.
+* &useskin=default will now always display the default skin. Useful for users with a
+  preference for the non-default skin to look at something using the default skin.
+* (bug 27619) Remove preference option to display broken links as link?
+* (bug 34896) jQuery JSON plugin upgraded to v2.3 (2011-09-17).
+* (bug 34302) Add CSS classes to email fields in user preferences.
+* Introduced $wgDebugDBTransactions to trace transaction status (currently PostgreSQL only).
+* (bug 23795) Add parser itself to ParserMakeImageParams hook.
+* Introduce a cryptographic random number generator source api for use when
+  generating various tokens.
+* (bug 30963) Option on Special:Prefixindex and Special:Allpages to not show redirects.
+* (bug 18062) New message when edit or create the local page of a shared file.
+* (bug 22870) Separate interface message when creating a page.
+* (bug 17615) nosummary option should be reassigned on preview/captcha.
+* (bug 34355) Add a variable and parser function for the namespace number.
+* (bug 35649) Special:Version now shows hashes of extensions checked out from git.
+* (bug 35728) Git revisions are now linked on Special:Version.
+* "Show Changes" on default messages shows now diff against default message text
+* (bug 23006) create #speciale parser function.
+* generateSitemap can now optionally skip redirect pages.
+* (bug 27757) New API command just for retrieving tokens (not page-based).
+* Added GitViewers hook for extensions using external git repositories to have a web-based
+  repository viewer linked to from Special:Version.
+* Memcached debug logs can now be sent to their own file logs by setting
+  $wgDebugLogFile['memcached'] to some filepath.
+* (bug 35685) api.php URL and other entry point URLs are now listed on
+  Special:Version
+* Edit notices can now be translated.
+* jQuery upgraded to 1.8.2.
+* jQuery UI upgraded to 1.8.23.
+* QUnit upgraded from v1.2.0 to v1.10.0.
+* (bug 37604) jquery.cookie upgraded to 2011 version.
+* (bug 22887) Add warning and tracking category for preprocessor errors
+* (bug 31704) Allow selection of associated namespace on the watchlist
+* (bug 5445) Now remove autoblocks when a user is unblocked.
+* Added $wgLogExceptionBacktrace, on by default, to allow logging of exception
+  backtraces.
+* Added device detection for determining device capabilities.
+* QUnit.newMwEnvironment now supports passing a custom setup and/or teardown function.
+  Arguments signature has changed. First arguments is now an options object of which
+  'config' can be a property. Previously 'config' itself was the first and only argument.
+* New getCreator and getOldestRevision methods added to WikiPage class
+* (bug 4220) the XML dump format schema now have unique identity constraints
+  for page and revision identifiers. Patch by Elvis Stansvik.
+* cleanupSpam.php now can delete spam pages if --delete was specified instead of blanking
+  them.
+* Added new hook ChangePasswordForm to allow adding of additional fields in Special:ChangePassword
+* Added new function getDomain to AuthPlugin for getting a user's domain
+* (bug 23427) New magic word {{PAGEID}} which gives the current page ID.
+  Will be null on previewing a page being created.
+* (bug 37627) UserNotLoggedIn() exception to show a generic error page whenever
+  a user is not logged in.
+* Watched status in changes lists are no longer indicated by <strong></strong>
+  tags with class "mw-watched". Instead, each line now has a class
+  "mw-changeslist-line-watched" or "mw-changeslist-line-not-watched", and the
+  title itself is surrounded by <span></span> tags with class "mw-title".
+* Added ContribsPager::reallyDoQuery hook allowing extensions to data to MyContribs
+* Added new hook ParserAfterParse to allow extensions to affect parsed output
+  after the parse is complete but before block level processing, link holder
+  replacement, and so on.
+* (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
+  internalParse method just before the parser removes unwanted/dangerous HTML tags.
+* Added new hook AfterFinalPageOutput to allow modifications to buffered page output before sent
+  to the client.
+* (bug 36783) Implement jQuery Promise interface in mediawiki.api module.
+* Make dates in sortable tables sort according to the page content language
+  instead of the site content language
+* (bug 37926) Deleterevision will no longer allow users to delete log entries,
+  the new deletelogentry permission is required for this.
+* (bug 14237) Allow PAGESINCATEGORY to distinguish between 'all', 'pages', 'files'
+  and 'subcats'
+* (bug 38362) Make Special:Listuser includeable on wiki pages.
+* Added support in jquery.localize for placeholder attributes.
+* (bug 38151) Implemented mw.user.getRights for getting and caching the current
+  user's user rights.
+* Session storage can now configured independently of general object cache
+  storage, by using $wgSessionCacheType. $wgSessionsInMemcached has been
+  renamed to $wgSessionsInObjectCache, with the old name retained for backwards
+  compatibility. When this feature is enabled, the expiry time can now be
+  configured with $wgObjectCacheSessionExpiry.
+* Added a Redis client for object caching.
+* Implemented mw.user.getGroups for getting and caching user groups.
+* (bug 37830) Added $wgRequirePasswordforEmailChange to control whether password
+  confirmation is required for changing an email address or not.
+* HTMLForm mutators can now be chained (they return $this)
+* A new message, "api-error-filetype-banned-type", is available for formatting
+  API upload errors due to the file extension blacklist.
+* New hook 'ParserTestGlobals' allows to set globals before running parser tests.
+* Allow importing pages as subpage.
+* Add lang and hreflang attributes to language links on Login page.
+* (bug 22749) Create Special:MostInterwikis.
+* Show change tags when transclude Special:Recentchanges(linked) or Special:Newpages.
+* (bug 23226) Add |class= parameter to image links in order to add class(es) to HTML img tag.
+* (bug 39431) SVG animated status is now shown in long description.
+* (bug 39376) jquery.form upgraded to 3.14.
+* SVG files will now show the actual width in the SVG's specified units
+  in the metadata box.
+* Added ResourceLoader module "jquery.jStorage" (v0.3.0, http://jStorage.info/).
+* (bug 39273) Added AJAX support for "Show changes" (diff) in LivePreview.
+* Added ResourceLoader module "jquery.badge".
+* mw.util.$content now points to the overall content area in the skin rather than just
+  page text content area. If you need the old behaviour please use $( '#mw-content-text').
+* jsMessage has been replaced with a floating bubble notification system complete
+  with auto-hide, multi-message support, and message replacement tags.
+* jquery.messageBox which appears to be unused by both core and extensions has
+  been removed.
+* (bug 34939) Made link parsing insensitive ([HttP://]).
+* (bug 40072) Add CSS classes to items in output of ChangesList pages.
+* Added $wgCopyUploadProxy global to define which proxy to use for copy
+  uploads.
+* (bug 40448) mediawiki.legacy.mwsuggest has been replaced with a new module,
+  mediawiki.searchSuggest, based on SimpleSeach from Extension:Vector.
+
+=== Known issues in 1.20.0 ===
+These are issues that we're targeting to be fixed in a later release
+in the 1.20 series.  Issues may be added or removed from this list as
+we see fit.  For now, it is comprised of those bugs on the 1.20.0
+milestone in Bugzilla.
+
+* (bug 35894): Reports of secret key generation "hanging" on windows
+    This is probably a bug that has been fixed in PHP.  If you run
+    into this, try upgrading your PHP.
+* (bug 38334): PHP Notice:  Undefined index: href in /www/w/skins/Vector.php on line 416
+    We think this is a problem in some extension.  If you see this,
+    try disabling your extensions and check out the logging patch on
+    this bug.  Or try this patch:
+    <https://gerrit.wikimedia.org/r/#/c/27937/1/skins/Vector.php>
+* (bug 39268): [Regression] Toolbar inserts in main textarea only (instead of the focussed textarea)
+    This should only be an issue if you are using the ProofreadPage
+    extension.
+* (bug 40641): Clicking "others" in Special:Version asks to download a file
+    If you encounter this, you can tell your webserver to serve the
+    CREDITS file with text/plain MIME type to fix it.
+
+=== Bug fixes in 1.20 ===
+* (bug 40939): [Regression] InfoAction: Call to a member function getUserText() on a non-object
+* (bug 40780): searchsuggest-containing line ("containing...") doesn't include the entered text
+* (bug 37714): [Regression] Incomplete log entries
+* (bug 27202): API: Add timestamp sort to list=allimages
+* (bug 30245) Use the correct way to construct a log page title.
+* (bug 34237) Regenerate an empty user_token and save to the database
+  when we try to set the user's cookies for login.
+* (bug 32210) New edit emails for watched pages always provide a link to the
+  edit which triggered the mail.
+* (bug 12021) Added user talk link on Special:Listusers.
+* (bug 34445) section edit and TOC hide/show links are excluded from selection and
+  copy/paste on supporting browsers.
+* (bug 34428) Fixed incorrect hash mismatch errors in the DiffHistoryBlob
+  history compression method.
+* (bug 34702) Localised parentheses are now used in more special pages.
+* (bug 34723) When editing a script page on a RTL wiki the textbox should be LTR.
+* (bug 34762) Calling close() on a DatabaseBase object now clears the connection.
+* (bug 34863) Show deletion log extract on non-existent file pages if applicable.
+* (bug 28019) Let ?preloadtitle=foo be passed on to target of
+  Special:MyPage and Special:MyTalk.
+* (bug 34929) Show the correct diff when a section edit is rejected by the spam
+  filter.
+* (bug 15816) Add a switch for SETting the search_path (Postgres).
+* (bug 34521) Returning to the previous page after logging in loses any array-
+  valued parameters in the query string.
+* (bug 34735) Updated compressOld.php documentation to mention the different
+  usages of -s and -n parameters depending on compression type.
+* (bug 13896) Rendering of devanagari numbers in automatic '#' number lists.
+* (bug 33689) Upgrade to 1.19 on Postgres fails due to incomplete query when.
+  trying to defer foreign key for externallinks.
+* (bug 32748) Printer friendly version of article decode Unicode chars as a
+  pretty IRI in footer.
+* Removed white border around thumbnails in galleries.
+* (bug 31236) "Next" and "Previous" buttons are shown incorrectly in
+  an RTL environment.
+* (bug 35749) Updated maintenance/checkSyntax.php to use Git instead of
+  Subversion when invoked with the --modified option.
+* (bug 35069) On history pages, the " . . " separator after the number of
+  characters changed in a revision is now suppressed if no text would follow.
+* (bug 18704) Add a unique CSS class or ID to the tagfilter table row at RecentChanges
+* (bug 33564) transwiki import sometimes result in invalid title.
+* (bug 35572) Blocks appear to succeed even if query fails due to wrong DB structure
+* (bug 31757) Add a word-separator between help-messages in HTMLForm
+* (bug 30410) Removed deprecated $wgFilterCallback and the 'filtered' API error.
+* (bug 32604) Some messages needs escaping of wikitext inside username.
+* (bug 36537) Rename wfArrayToCGI to wfArrayToCgi for consistency with wfCgiToArray.
+* (bug 25946) The message on the top of Special:RecentChanges is now displayed.
+  in user language instead of content language.
+* (bug 35264) Wrong type used for <ns> in export.xsd
+* (bug 24985) Use $wgTmpDirectory as the default temp directory so that people
+  who don't have access to /tmp can specify an alternative.
+* (bug 27283) SqlBagOStuff breaks PostgreSQL transactions.
+* (bug 35727) mw.Api ajax() should put token parameter last.
+* (bug 37708) mw.Uri.clone() should make a deep copy.
+* (bug 38024) ResourceLoader should not create empty stylesheets for modules
+  that don't have stylesheets.
+* (bug 36812) Special:ActiveUsers "Hide bots" should hide users from any group
+  having the "bot" user right, instead of just the default "bot" user group.
+* (bug 35082) mw.util.addPortletLink incorrectly adds link to mutiple <ul> tags.
+* (bug 36991) jquery.tablesorter should extract date sort format from date
+  string instead of global config. Dates like "April 1 2012" and "1 April 2012"
+  now sort correctly regardless of the content language's DefaultDateFormat.
+* (bug 31895) mw.loader mode now correct when triggered from a $.fn.ready
+  handler that is bound before mediawiki.js's handler (e.g. browser-userscripts
+  like greasemonkey).
+* (bug 38152) jquery.tablesorter: Use .data() instead of .attr(), so that live
+  values are used instead of just the fixed values from when the tablesorter
+  was initialized.
+* (bug 38093) Gender of changed user groups missing in Special:Log/rights
+* (bug 35893) Special:Block needs to load mediawiki.special.block.js.
+* (bug 37331) ResourceLoader modules sometimes execute twice in Firefox
+* (bug 31644) GlobalUsage, CentralAuth and AbuseLog extensions should not use
+  insecure links to foreign wikis in the WikiMap.
+* (bug 36073) Avoid duplicate element IDs on File pages.
+* (bug 25095) Special:Categories should also include the first relevant item
+  when "from" is filled.
+* (bug 35526) jquery.tablesorter now uses a stable sort.
+* (bug 38953) --memory-limit switch not working for runJobs.php.
+* (bug 33037) Make subpage of Special:newfiles control how many files
+  are returned, like in previous versions.
+* (bug 36524) "Show" options on Special:RecentChanges and Special:RecentChangesLinked
+  are now remembered between successive clicks.
+* (bug 26069) Page title is no longer "Error" for all error pages.
+* (bug 39297) Show warning if thumbnail of animated image will not be animated.
+* (bug 38249) Parser will throw an exception instead of outputting gibberish if
+  PCRE is compiled without support for unicode properties.
+* (bug 30390) Suggested file name on Special:Upload should not contain
+  illegal characters.
+* EXIF below sea level GPS altitude data is now shown correctly.
+* (bug 39284) jquery.tablesorter should not consider "."" or "?"" to be a currency.
+* (bug 39273) "Show changes" should not be incorrectly displayed in the Live Preview state.
+* Made body-content lang attribute honor the variant language when it is set.
+* (bug 36761) "Mark pages as visited" now submits previously established filter options.
+* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
+* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
+* (bug 32552) Drop unused database field cat_hidden from table category.
+* (bug 24502) Do not allow multiple language links to the same language.
+* (bug 40214) Category pages no longer use deprecated "width" HTML attribute.
+* (bug 39941) Add missing stylesheets to the installer pages
+* In HTML5 mode, allow new input element types values (such as color, range..)
+* (bug 36151) mw.Title: Don't limit extension in title parsing.
+* (bug 38158) jquery.byteLimit sometimes causes an unexpected 0 maxLength being enforced.
+* (bug 38163) jquery.byteLimit incorrectly limits input when using methods other than
+  basic per-char typing.
+* (bug 34495) patrol log now credit the user patrolling (instead of patrolled
+  user).
+* (bug 31676) ResourceLoader should work around IE stylesheet limit.
+* (bug 40498) ResourceLoader should not output an empty "@media print { }" block.
+* (bug 40500) ResourceLoader should not ignore media-type for urls in debug mode.
+* (bug 40660) ResourceLoaderWikiModule should not convert "&nbsp;" to a space
+  for pages from the MediaWiki-namespace.
+* (bug 40329) (bug 40632) Removed CleanupPresentationalAttributes feature.
+
+=== API changes in 1.20 ===
+* (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
+* (bug 34313) MediaWiki API intro message about "HTML format" should mention
+  the format parameter.
+* (bug 32384) Allow descending order for list=watchlistraw.
+* (bug 31883) Limit of bkusers of list=blocks and titles of action=query is
+  not documented in API help.
+* (bug 32492) API now allows editing using pageid.
+* (bug 32497) API now allows changing of protection level using pageid.
+* (bug 32498) API now allows comparing pages using pageids.
+* (bug 30975) API import of pages with invalid characters in this wiki leads to Fatal Error.
+* (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid.
+* (bug 34927) Output media_type for list=filearchive.
+* (bug 28814) add properties to output of action=parse.
+* (bug 33224) add variants of content language to meta=siteinfo.
+* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached.
+* The paraminfo module now also contains result properties for most modules.
+* (bug 32348) Allow descending order for list=alllinks.
+* (bug 31777) Upload unknown error ``fileexists-forbidden''.
+* (bug 32382) Allow descending order for list=iwbacklinks.
+* (bug 32381) Allow descending order for list=backlinks, list=embeddedin and list=imageusage.
+* (bug 32383) Allow descending order for list=langbacklinks.
+* API meta=siteinfo can now return the list of known variable IDs.
+* (bug 35980) list=deletedrevs now honors drdir correctly in "all" mode (mode #3).
+* (bug 29290) API avoids mangling fields in continuation parameters
+* (bug 36987) API avoids mangling fields in continuation parameters
+* (bug 30836) siteinfo prop=specialpagealiases will no longer return nonexistent special pages
+* (bug 38190) Add "required" flag to some token params for hint in api docs.
+* (bug 27567) Add file repo support to prop=duplicatefiles.
+* (bug 27610) Add archivename for non-latest image version to list=filearchive
+* (bug 38231) Add xml parse tree to action=parse.
+* Watchlist notification timestamp may be queried by page and may be updated via the API.
+* (bug 38904) prop=revisions&rvstart=... no longer blows up when continuing.
+* (bug 39032) ApiQuery generates help in constructor.
+* (bug 11142) Improve file extension blacklist error reporting in API upload.
+* (bug 39665) List of query generators is now not built using reflection, instead it is
+  defined in code.
+
+=== Languages updated in 1.20 ===
+
+MediaWiki supports over 350 languages. Many localisations are updated
+regularly. Below only new and removed languages are listed, as well as
+changes to languages because of Bugzilla reports.
+
+* Emilian (egl) added.
+* Tornedalen Finnish (fit) added.
+* Mizo (lus) added.
+* Santali (sat) added.
+* (bug 34192) Namespace gender aliases for Albanian languages (sq & aln).
+* (bug 35541) Namespace gender aliases for Croatian (hr).
+* (bug 36012) Space in $separatorTransformTable should be non-breaking in
+  Portuguese, Esperanto and Udmurt.
+* Turoyo (tru) added.
+* Cyrillic-Latin language converter added for Uzbek (uz).
+
+=== Other changes in 1.20 ===
+* The user_token field is now left empty until a user attempts to login and
+  cookies need to be set. It is also now possible to reset every user's
+  user_token simply by clearing the values in the user_token column.
+* Removed ./tests/qunit/index.html from core. It wasn't actively maintained and
+  has been made obsolete when [[Special:JavaScriptTest/qunit]] was introduced,
+  which actually uses ResourceLoader, LocalSettings and the Skin.
+* Removed $wgDBtransactions global. This was only checked in one class
+  and only applies to MyISAM or similar DBs. Those should only be used
+  for archived sites anyway. We can't get edit conflicts on such sites,
+  so the WikiPage code wasn't useful there either.
+* Deprecated mw.user.name in favour of mw.user.getName.
+* Deprecated mw.user.anonymous in favour of mw.user.isAnon.
+* Deprecated DatabaseBase functions newFromParams(), newFromType(), set(),
+  quote_ident(), and escapeLike() were removed.
+* Use of __DIR__ instead of dirname( __FILE__ ).
+* OutputPage::wrapWikiMsg() no longer supports the 'options' parameter. It was
+  not used and complicated migration to Message class.
+* Live preview functionality has been improved and moved into the
+ 'mediawiki.action.edit.preview' module. The old 'mediawiki.legacy.preview' module
+  has been removed.
+* (bug 40448) Removed mediawiki.legacy.mwsuggest module, and removed the
+  following that has become obsolete:
+  - globals $wgEnableMWSuggest and $wgMWSuggestTemplate.
+  - mw.config.values wgMWSuggestTemplate and wgSearchNamespaces.
+  - method SearchEngine::getMWSuggestTemplate().
+
 == MediaWiki 1.19 ==
 
 == MediaWiki 1.19.2 ==
diff --git a/RELEASE-NOTES-1.20 b/RELEASE-NOTES-1.20
deleted file mode 100644 (file)
index ea8ed6d..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-= MediaWiki release notes =
-
-Security reminder: MediaWiki does not require PHP's register_globals
-setting since version 1.2.0. If you have it on, turn it '''off''' if you can.
-
-== MediaWiki 1.20 ==
-
-MediaWiki 1.20 is a stable release.
-
-=== PHP 5.3 now required ===
-Since 1.20, the lowest supported version of PHP is now 5.3.2. Please
-upgrade PHP if you have not done so prior to upgrading MediaWiki.
-
-=== Configuration changes in 1.20 ===
-* $wgGitRepositoryViewers defines a mapping from Git remote repository to the
-  Gitweb instance URL used in Special:Version.
-* `$wgUsePathInfo = true;` is no longer needed to make $wgArticlePath work on servers
-  using like nginx, lighttpd, and apache over fastcgi. MediaWiki now always extracts
-  path info from REQUEST_URI if it's available.
-* The user right 'upload_by_url' is no longer given to sysops by default.
-  This only affects installations which have $wgAllowCopyUploads set to true.
-* Removed f-prot support from $wgAntivirusSetup.
-* New variable $wgDBerrorLogTZ to provide dates in the error log in a
-  different timezone than the wiki timezone set by $wgLocaltimezone.
-* New variables $wgDBssl and $wgDBcompress to enable SSL and compression for database
-  connections, if either are available for the selected DB type.
-* $wgUseCombinedLoginLink now defaults to false, making MediaWiki output separate
-  login and create account links by default.
-
-=== New features in 1.20 ===
-* Added TitleIsAlwaysKnown hook which gets called when determining if a page exists.
-* Added NamespaceIsMovable hook which gets called when determining if pages in a
-  certain namespace can be moved.
-* Added SpecialPageBeforeExecute hook which gets called before SpecialPage::execute.
-* Added SpecialPageAfterExecute hook which gets called after SpecialPage::execute.
-* Added ORMTable, ORMRow and ORMResult classes for additional abstraction of
-  database interaction.
-* Added CacheHelper and associated SpecialCachedPage and CachedAction helper classes.
-* (bug 32341) Add upload by URL domain limitation.
-* &useskin=default will now always display the default skin. Useful for users with a
-  preference for the non-default skin to look at something using the default skin.
-* (bug 27619) Remove preference option to display broken links as link?
-* (bug 34896) jQuery JSON plugin upgraded to v2.3 (2011-09-17).
-* (bug 34302) Add CSS classes to email fields in user preferences.
-* Introduced $wgDebugDBTransactions to trace transaction status (currently PostgreSQL only).
-* (bug 23795) Add parser itself to ParserMakeImageParams hook.
-* Introduce a cryptographic random number generator source api for use when
-  generating various tokens.
-* (bug 30963) Option on Special:Prefixindex and Special:Allpages to not show redirects.
-* (bug 18062) New message when edit or create the local page of a shared file.
-* (bug 22870) Separate interface message when creating a page.
-* (bug 17615) nosummary option should be reassigned on preview/captcha.
-* (bug 34355) Add a variable and parser function for the namespace number.
-* (bug 35649) Special:Version now shows hashes of extensions checked out from git.
-* (bug 35728) Git revisions are now linked on Special:Version.
-* "Show Changes" on default messages shows now diff against default message text
-* (bug 23006) create #speciale parser function.
-* generateSitemap can now optionally skip redirect pages.
-* (bug 27757) New API command just for retrieving tokens (not page-based).
-* Added GitViewers hook for extensions using external git repositories to have a web-based
-  repository viewer linked to from Special:Version.
-* Memcached debug logs can now be sent to their own file logs by setting
-  $wgDebugLogFile['memcached'] to some filepath.
-* (bug 35685) api.php URL and other entry point URLs are now listed on
-  Special:Version
-* Edit notices can now be translated.
-* jQuery upgraded to 1.8.2.
-* jQuery UI upgraded to 1.8.23.
-* QUnit upgraded from v1.2.0 to v1.10.0.
-* (bug 37604) jquery.cookie upgraded to 2011 version.
-* (bug 22887) Add warning and tracking category for preprocessor errors
-* (bug 31704) Allow selection of associated namespace on the watchlist
-* (bug 5445) Now remove autoblocks when a user is unblocked.
-* Added $wgLogExceptionBacktrace, on by default, to allow logging of exception
-  backtraces.
-* Added device detection for determining device capabilities.
-* QUnit.newMwEnvironment now supports passing a custom setup and/or teardown function.
-  Arguments signature has changed. First arguments is now an options object of which
-  'config' can be a property. Previously 'config' itself was the first and only argument.
-* New getCreator and getOldestRevision methods added to WikiPage class
-* (bug 4220) the XML dump format schema now have unique identity constraints
-  for page and revision identifiers. Patch by Elvis Stansvik.
-* cleanupSpam.php now can delete spam pages if --delete was specified instead of blanking
-  them.
-* Added new hook ChangePasswordForm to allow adding of additional fields in Special:ChangePassword
-* Added new function getDomain to AuthPlugin for getting a user's domain
-* (bug 23427) New magic word {{PAGEID}} which gives the current page ID.
-  Will be null on previewing a page being created.
-* (bug 37627) UserNotLoggedIn() exception to show a generic error page whenever
-  a user is not logged in.
-* Watched status in changes lists are no longer indicated by <strong></strong>
-  tags with class "mw-watched". Instead, each line now has a class
-  "mw-changeslist-line-watched" or "mw-changeslist-line-not-watched", and the
-  title itself is surrounded by <span></span> tags with class "mw-title".
-* Added ContribsPager::reallyDoQuery hook allowing extensions to data to MyContribs
-* Added new hook ParserAfterParse to allow extensions to affect parsed output
-  after the parse is complete but before block level processing, link holder
-  replacement, and so on.
-* (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
-  internalParse method just before the parser removes unwanted/dangerous HTML tags.
-* Added new hook AfterFinalPageOutput to allow modifications to buffered page output before sent
-  to the client.
-* (bug 36783) Implement jQuery Promise interface in mediawiki.api module.
-* Make dates in sortable tables sort according to the page content language
-  instead of the site content language
-* (bug 37926) Deleterevision will no longer allow users to delete log entries,
-  the new deletelogentry permission is required for this.
-* (bug 14237) Allow PAGESINCATEGORY to distinguish between 'all', 'pages', 'files'
-  and 'subcats'
-* (bug 38362) Make Special:Listuser includeable on wiki pages.
-* Added support in jquery.localize for placeholder attributes.
-* (bug 38151) Implemented mw.user.getRights for getting and caching the current
-  user's user rights.
-* Session storage can now configured independently of general object cache
-  storage, by using $wgSessionCacheType. $wgSessionsInMemcached has been
-  renamed to $wgSessionsInObjectCache, with the old name retained for backwards
-  compatibility. When this feature is enabled, the expiry time can now be
-  configured with $wgObjectCacheSessionExpiry.
-* Added a Redis client for object caching.
-* Implemented mw.user.getGroups for getting and caching user groups.
-* (bug 37830) Added $wgRequirePasswordforEmailChange to control whether password
-  confirmation is required for changing an email address or not.
-* HTMLForm mutators can now be chained (they return $this)
-* A new message, "api-error-filetype-banned-type", is available for formatting
-  API upload errors due to the file extension blacklist.
-* New hook 'ParserTestGlobals' allows to set globals before running parser tests.
-* Allow importing pages as subpage.
-* Add lang and hreflang attributes to language links on Login page.
-* (bug 22749) Create Special:MostInterwikis.
-* Show change tags when transclude Special:Recentchanges(linked) or Special:Newpages.
-* (bug 23226) Add |class= parameter to image links in order to add class(es) to HTML img tag.
-* (bug 39431) SVG animated status is now shown in long description.
-* (bug 39376) jquery.form upgraded to 3.14.
-* SVG files will now show the actual width in the SVG's specified units
-  in the metadata box.
-* Added ResourceLoader module "jquery.jStorage" (v0.3.0, http://jStorage.info/).
-* (bug 39273) Added AJAX support for "Show changes" (diff) in LivePreview.
-* Added ResourceLoader module "jquery.badge".
-* mw.util.$content now points to the overall content area in the skin rather than just
-  page text content area. If you need the old behaviour please use $( '#mw-content-text').
-* jsMessage has been replaced with a floating bubble notification system complete
-  with auto-hide, multi-message support, and message replacement tags.
-* jquery.messageBox which appears to be unused by both core and extensions has
-  been removed.
-* (bug 34939) Made link parsing insensitive ([HttP://]).
-* (bug 40072) Add CSS classes to items in output of ChangesList pages.
-* Added $wgCopyUploadProxy global to define which proxy to use for copy
-  uploads.
-* (bug 40448) mediawiki.legacy.mwsuggest has been replaced with a new module,
-  mediawiki.searchSuggest, based on SimpleSeach from Extension:Vector.
-
-=== Known issues in 1.20.0 ===
-These are issues that we're targeting to be fixed in a later release
-in the 1.20 series.  Issues may be added or removed from this list as
-we see fit.  For now, it is comprised of those bugs on the 1.20.0
-milestone in Bugzilla.
-
-* (bug 35894): Reports of secret key generation "hanging" on windows
-    This is probably a bug that has been fixed in PHP.  If you run
-    into this, try upgrading your PHP.
-* (bug 38334): PHP Notice:  Undefined index: href in /www/w/skins/Vector.php on line 416
-    We think this is a problem in some extension.  If you see this,
-    try disabling your extensions and check out the logging patch on
-    this bug.  Or try this patch:
-    <https://gerrit.wikimedia.org/r/#/c/27937/1/skins/Vector.php>
-* (bug 39268): [Regression] Toolbar inserts in main textarea only (instead of the focussed textarea)
-    This should only be an issue if you are using the ProofreadPage
-    extension.
-* (bug 40641): Clicking "others" in Special:Version asks to download a file
-    If you encounter this, you can tell your webserver to serve the
-    CREDITS file with text/plain MIME type to fix it.
-
-=== Bug fixes in 1.20 ===
-* (bug 40939): [Regression] InfoAction: Call to a member function getUserText() on a non-object
-* (bug 40780): searchsuggest-containing line ("containing...") doesn't include the entered text
-* (bug 37714): [Regression] Incomplete log entries
-* (bug 27202): API: Add timestamp sort to list=allimages
-* (bug 30245) Use the correct way to construct a log page title.
-* (bug 34237) Regenerate an empty user_token and save to the database
-  when we try to set the user's cookies for login.
-* (bug 32210) New edit emails for watched pages always provide a link to the
-  edit which triggered the mail.
-* (bug 12021) Added user talk link on Special:Listusers.
-* (bug 34445) section edit and TOC hide/show links are excluded from selection and
-  copy/paste on supporting browsers.
-* (bug 34428) Fixed incorrect hash mismatch errors in the DiffHistoryBlob
-  history compression method.
-* (bug 34702) Localised parentheses are now used in more special pages.
-* (bug 34723) When editing a script page on a RTL wiki the textbox should be LTR.
-* (bug 34762) Calling close() on a DatabaseBase object now clears the connection.
-* (bug 34863) Show deletion log extract on non-existent file pages if applicable.
-* (bug 28019) Let ?preloadtitle=foo be passed on to target of
-  Special:MyPage and Special:MyTalk.
-* (bug 34929) Show the correct diff when a section edit is rejected by the spam
-  filter.
-* (bug 15816) Add a switch for SETting the search_path (Postgres).
-* (bug 34521) Returning to the previous page after logging in loses any array-
-  valued parameters in the query string.
-* (bug 34735) Updated compressOld.php documentation to mention the different
-  usages of -s and -n parameters depending on compression type.
-* (bug 13896) Rendering of devanagari numbers in automatic '#' number lists.
-* (bug 33689) Upgrade to 1.19 on Postgres fails due to incomplete query when.
-  trying to defer foreign key for externallinks.
-* (bug 32748) Printer friendly version of article decode Unicode chars as a
-  pretty IRI in footer.
-* Removed white border around thumbnails in galleries.
-* (bug 31236) "Next" and "Previous" buttons are shown incorrectly in
-  an RTL environment.
-* (bug 35749) Updated maintenance/checkSyntax.php to use Git instead of
-  Subversion when invoked with the --modified option.
-* (bug 35069) On history pages, the " . . " separator after the number of
-  characters changed in a revision is now suppressed if no text would follow.
-* (bug 18704) Add a unique CSS class or ID to the tagfilter table row at RecentChanges
-* (bug 33564) transwiki import sometimes result in invalid title.
-* (bug 35572) Blocks appear to succeed even if query fails due to wrong DB structure
-* (bug 31757) Add a word-separator between help-messages in HTMLForm
-* (bug 30410) Removed deprecated $wgFilterCallback and the 'filtered' API error.
-* (bug 32604) Some messages needs escaping of wikitext inside username.
-* (bug 36537) Rename wfArrayToCGI to wfArrayToCgi for consistency with wfCgiToArray.
-* (bug 25946) The message on the top of Special:RecentChanges is now displayed.
-  in user language instead of content language.
-* (bug 35264) Wrong type used for <ns> in export.xsd
-* (bug 24985) Use $wgTmpDirectory as the default temp directory so that people
-  who don't have access to /tmp can specify an alternative.
-* (bug 27283) SqlBagOStuff breaks PostgreSQL transactions.
-* (bug 35727) mw.Api ajax() should put token parameter last.
-* (bug 37708) mw.Uri.clone() should make a deep copy.
-* (bug 38024) ResourceLoader should not create empty stylesheets for modules
-  that don't have stylesheets.
-* (bug 36812) Special:ActiveUsers "Hide bots" should hide users from any group
-  having the "bot" user right, instead of just the default "bot" user group.
-* (bug 35082) mw.util.addPortletLink incorrectly adds link to mutiple <ul> tags.
-* (bug 36991) jquery.tablesorter should extract date sort format from date
-  string instead of global config. Dates like "April 1 2012" and "1 April 2012"
-  now sort correctly regardless of the content language's DefaultDateFormat.
-* (bug 31895) mw.loader mode now correct when triggered from a $.fn.ready
-  handler that is bound before mediawiki.js's handler (e.g. browser-userscripts
-  like greasemonkey).
-* (bug 38152) jquery.tablesorter: Use .data() instead of .attr(), so that live
-  values are used instead of just the fixed values from when the tablesorter
-  was initialized.
-* (bug 38093) Gender of changed user groups missing in Special:Log/rights
-* (bug 35893) Special:Block needs to load mediawiki.special.block.js.
-* (bug 37331) ResourceLoader modules sometimes execute twice in Firefox
-* (bug 31644) GlobalUsage, CentralAuth and AbuseLog extensions should not use
-  insecure links to foreign wikis in the WikiMap.
-* (bug 36073) Avoid duplicate element IDs on File pages.
-* (bug 25095) Special:Categories should also include the first relevant item
-  when "from" is filled.
-* (bug 35526) jquery.tablesorter now uses a stable sort.
-* (bug 38953) --memory-limit switch not working for runJobs.php.
-* (bug 33037) Make subpage of Special:newfiles control how many files
-  are returned, like in previous versions.
-* (bug 36524) "Show" options on Special:RecentChanges and Special:RecentChangesLinked
-  are now remembered between successive clicks.
-* (bug 26069) Page title is no longer "Error" for all error pages.
-* (bug 39297) Show warning if thumbnail of animated image will not be animated.
-* (bug 38249) Parser will throw an exception instead of outputting gibberish if
-  PCRE is compiled without support for unicode properties.
-* (bug 30390) Suggested file name on Special:Upload should not contain
-  illegal characters.
-* EXIF below sea level GPS altitude data is now shown correctly.
-* (bug 39284) jquery.tablesorter should not consider "."" or "?"" to be a currency.
-* (bug 39273) "Show changes" should not be incorrectly displayed in the Live Preview state.
-* Made body-content lang attribute honor the variant language when it is set.
-* (bug 36761) "Mark pages as visited" now submits previously established filter options.
-* (bug 39635) PostgreSQL LOCK IN SHARE MODE option is a syntax error.
-* (bug 36329) Accesskey tooltips for Firefox 14 on Mac should use "ctrl-option-" prefix.
-* (bug 32552) Drop unused database field cat_hidden from table category.
-* (bug 24502) Do not allow multiple language links to the same language.
-* (bug 40214) Category pages no longer use deprecated "width" HTML attribute.
-* (bug 39941) Add missing stylesheets to the installer pages
-* In HTML5 mode, allow new input element types values (such as color, range..)
-* (bug 36151) mw.Title: Don't limit extension in title parsing.
-* (bug 38158) jquery.byteLimit sometimes causes an unexpected 0 maxLength being enforced.
-* (bug 38163) jquery.byteLimit incorrectly limits input when using methods other than
-  basic per-char typing.
-* (bug 34495) patrol log now credit the user patrolling (instead of patrolled
-  user).
-* (bug 31676) ResourceLoader should work around IE stylesheet limit.
-* (bug 40498) ResourceLoader should not output an empty "@media print { }" block.
-* (bug 40500) ResourceLoader should not ignore media-type for urls in debug mode.
-* (bug 40660) ResourceLoaderWikiModule should not convert "&nbsp;" to a space
-  for pages from the MediaWiki-namespace.
-* (bug 40329) (bug 40632) Removed CleanupPresentationalAttributes feature.
-
-=== API changes in 1.20 ===
-* (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
-* (bug 34313) MediaWiki API intro message about "HTML format" should mention
-  the format parameter.
-* (bug 32384) Allow descending order for list=watchlistraw.
-* (bug 31883) Limit of bkusers of list=blocks and titles of action=query is
-  not documented in API help.
-* (bug 32492) API now allows editing using pageid.
-* (bug 32497) API now allows changing of protection level using pageid.
-* (bug 32498) API now allows comparing pages using pageids.
-* (bug 30975) API import of pages with invalid characters in this wiki leads to Fatal Error.
-* (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid.
-* (bug 34927) Output media_type for list=filearchive.
-* (bug 28814) add properties to output of action=parse.
-* (bug 33224) add variants of content language to meta=siteinfo.
-* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached.
-* The paraminfo module now also contains result properties for most modules.
-* (bug 32348) Allow descending order for list=alllinks.
-* (bug 31777) Upload unknown error ``fileexists-forbidden''.
-* (bug 32382) Allow descending order for list=iwbacklinks.
-* (bug 32381) Allow descending order for list=backlinks, list=embeddedin and list=imageusage.
-* (bug 32383) Allow descending order for list=langbacklinks.
-* API meta=siteinfo can now return the list of known variable IDs.
-* (bug 35980) list=deletedrevs now honors drdir correctly in "all" mode (mode #3).
-* (bug 29290) API avoids mangling fields in continuation parameters
-* (bug 36987) API avoids mangling fields in continuation parameters
-* (bug 30836) siteinfo prop=specialpagealiases will no longer return nonexistent special pages
-* (bug 38190) Add "required" flag to some token params for hint in api docs.
-* (bug 27567) Add file repo support to prop=duplicatefiles.
-* (bug 27610) Add archivename for non-latest image version to list=filearchive
-* (bug 38231) Add xml parse tree to action=parse.
-* Watchlist notification timestamp may be queried by page and may be updated via the API.
-* (bug 38904) prop=revisions&rvstart=... no longer blows up when continuing.
-* (bug 39032) ApiQuery generates help in constructor.
-* (bug 11142) Improve file extension blacklist error reporting in API upload.
-* (bug 39665) List of query generators is now not built using reflection, instead it is
-  defined in code.
-
-=== Languages updated in 1.20 ===
-
-MediaWiki supports over 350 languages. Many localisations are updated
-regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Bugzilla reports.
-
-* Emilian (egl) added.
-* Tornedalen Finnish (fit) added.
-* Mizo (lus) added.
-* Santali (sat) added.
-* (bug 34192) Namespace gender aliases for Albanian languages (sq & aln).
-* (bug 35541) Namespace gender aliases for Croatian (hr).
-* (bug 36012) Space in $separatorTransformTable should be non-breaking in
-  Portuguese, Esperanto and Udmurt.
-* Turoyo (tru) added.
-* Cyrillic-Latin language converter added for Uzbek (uz).
-
-=== Other changes in 1.20 ===
-* The user_token field is now left empty until a user attempts to login and
-  cookies need to be set. It is also now possible to reset every user's
-  user_token simply by clearing the values in the user_token column.
-* Removed ./tests/qunit/index.html from core. It wasn't actively maintained and
-  has been made obsolete when [[Special:JavaScriptTest/qunit]] was introduced,
-  which actually uses ResourceLoader, LocalSettings and the Skin.
-* Removed $wgDBtransactions global. This was only checked in one class
-  and only applies to MyISAM or similar DBs. Those should only be used
-  for archived sites anyway. We can't get edit conflicts on such sites,
-  so the WikiPage code wasn't useful there either.
-* Deprecated mw.user.name in favour of mw.user.getName.
-* Deprecated mw.user.anonymous in favour of mw.user.isAnon.
-* Deprecated DatabaseBase functions newFromParams(), newFromType(), set(),
-  quote_ident(), and escapeLike() were removed.
-* Use of __DIR__ instead of dirname( __FILE__ ).
-* OutputPage::wrapWikiMsg() no longer supports the 'options' parameter. It was
-  not used and complicated migration to Message class.
-* Live preview functionality has been improved and moved into the
- 'mediawiki.action.edit.preview' module. The old 'mediawiki.legacy.preview' module
-  has been removed.
-* (bug 40448) Removed mediawiki.legacy.mwsuggest module, and removed the
-  following that has become obsolete:
-  - globals $wgEnableMWSuggest and $wgMWSuggestTemplate.
-  - mw.config.values wgMWSuggestTemplate and wgSearchNamespaces.
-  - method SearchEngine::getMWSuggestTemplate().
-
-== Compatibility ==
-
-MediaWiki 1.20 requires PHP 5.3.2. PHP 4 is no longer supported.
-
-MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
-support for them is somewhat less mature. There is experimental support for IBM
-DB2 and Oracle.
-
-The supported versions are:
-
-* MySQL 5.0.2 or later
-* PostgreSQL 8.3 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-
-== Upgrading ==
-
-1.20 has several database changes since 1.19, and will not work without schema
-updates.
-
-If upgrading from before 1.11, and you are using a wiki as a commons
-repository, make sure that it is updated as well. Otherwise, errors may arise
-due to database schema changes.
-
-If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
-new database fields are filled with data.
-
-If you are upgrading from MediaWiki 1.4.x or earlier, some major database
-changes are made, and there is a slightly higher chance that things could
-break. Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.19.x and older releases, see HISTORY.
-
-== Online documentation ==
-
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
-       https://www.mediawiki.org/wiki/Documentation
-
-== Mailing list ==
-
-A mailing list is available for MediaWiki user support and discussion:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-
-There's usually someone online in #mediawiki on irc.freenode.net.
index 3d0c27a..461fadf 100644 (file)
@@ -248,6 +248,7 @@ $wgAutoloadLocalClasses = array(
        'TitleArray' => 'includes/TitleArray.php',
        'TitleArrayFromResult' => 'includes/TitleArray.php',
        'ThrottledError' => 'includes/Exception.php',
+       'UIDGenerator' => 'includes/UIDGenerator.php',
        'UnlistedSpecialPage' => 'includes/SpecialPage.php',
        'UploadSourceAdapter' => 'includes/Import.php',
        'UppercaseCollation' => 'includes/Collation.php',
index 6b7e99c..9ca64c5 100644 (file)
@@ -862,6 +862,8 @@ class EnhancedChangesList extends ChangesList {
                # Other properties
                $unpatrolled = false;
                $isnew = false;
+               $allBots = true;
+               $allMinors = true;
                $curId = $currentRevision = 0;
                # Some catalyst variables...
                $namehidden = true;
@@ -895,7 +897,13 @@ class EnhancedChangesList extends ChangesList {
                                $currentRevision = $rcObj->mAttribs['rc_this_oldid'];
                        }
 
-                       $bot = $rcObj->mAttribs['rc_bot'];
+                       if( !$rcObj->mAttribs['rc_bot'] ) {
+                               $allBots = false;
+                       }
+                       if( !$rcObj->mAttribs['rc_minor'] ) {
+                               $allMinors = false;
+                       }
+
                        $userlinks[$u]++;
                }
 
@@ -922,10 +930,10 @@ class EnhancedChangesList extends ChangesList {
 
                # Main line
                $r .= '<td class="mw-enhanced-rc">' . $this->recentChangesFlags( array(
-                       'newpage' => $isnew,
-                       'minor' => false,
-                       'unpatrolled' => $unpatrolled,
-                       'bot' => $bot ,
+                       'newpage' => $isnew, # show, when one have this flag
+                       'minor' => $allMinors, # show only, when all have this flag
+                       'unpatrolled' => $unpatrolled, # show, when one have this flag
+                       'bot' => $allBots, # show only, when all have this flag
                ) );
 
                # Timestamp
diff --git a/includes/UIDGenerator.php b/includes/UIDGenerator.php
new file mode 100644 (file)
index 0000000..05bb489
--- /dev/null
@@ -0,0 +1,310 @@
+<?php
+/**
+ * This file deals with UID generation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class for getting statistically unique IDs
+ *
+ * @since 1.20
+ */
+class UIDGenerator {
+       /** @var UIDGenerator */
+       protected static $instance = null;
+
+       protected $nodeId24; // string; node ID in binary (24 bits)
+       protected $nodeId32; // string; node ID in binary (32 bits)
+       protected $nodeId48; // string; node ID in binary (48 bits)
+       protected $threadId; // integer; thread ID or random integer
+
+       protected $lockFile64; // string; local file path
+       protected $lockFile88; // string; local file path
+       protected $lockFile128; // string; local file path
+
+       const EPOCH_MS_40 = 1325376000; // "January 1, 2012"
+       const EPOCH_US_56 = 1325376000; // "January 1, 2012"
+
+       protected function __construct() {
+               # Try to get some ID that uniquely identifies this machine...
+               wfSuppressWarnings();
+               if ( wfIsWindows() ) {
+                       # http://technet.microsoft.com/en-us/library/bb490913.aspx
+                       $csv    = trim( `getmac /NH /FO CSV` );
+                       $line   = substr( $csv, 0, strcspn( $csv, "\n" ) );
+                       $info   = str_getcsv( $line );
+                       $hostId = count( $info ) ? str_replace( '-', '', $info[0] ) : '';
+               } else { // *nix
+                       # See http://linux.die.net/man/1/hostid
+                       $hostId = trim( `hostid` );
+               }
+               wfRestoreWarnings();
+               $hostId = strtolower( $hostId );
+               if ( preg_match( '/^[0-9a-f]{8}|[0-9a-f]{12}$/', $hostId ) ) {
+                       $this->nodeId24 = wfBaseConvert( substr( sha1( $hostId ), 0, 6 ), 16, 2, 24 );
+                       $this->nodeId32 = wfBaseConvert( substr( sha1( $hostId ), 0, 8 ), 16, 2, 32 );
+                       $this->nodeId48 = wfBaseConvert( $hostId, 16, 2, 48 );
+               } else { // fallback to host name
+                       $hash = sha1( wfHostname() . ':' . php_uname( 's' ) . ':' . php_uname( 'm' ) );
+                       $this->nodeId24 = wfBaseConvert( substr( $hash, 0, 6 ), 16, 2, 24 );
+                       $this->nodeId32 = wfBaseConvert( substr( $hash, 0, 8 ), 16, 2, 32 );
+                       $this->nodeId48 = wfBaseConvert( substr( $hash, 0, 12 ), 16, 2, 48 );
+               }
+               # UID128 should be unique without having to check. The flock() calls may not be effective
+               # on operating systems when PHP is running in a threaded server model. In such cases, the
+               # Zend Thread Safety extension should be installed per php.net guidelines. This extension
+               # gives us zend_thread_id(), which we include in the UID to avoid collisions.
+               # See http://www.php.net/manual/en/install.unix.apache2.php.
+               $this->threadId    = function_exists( 'zend_thread_id' ) ? zend_thread_id() : 0;
+               $this->lockFile64  = wfTempDir() . '/mw-' . __CLASS__ . '-UID-64.lock';
+               $this->lockFile88  = wfTempDir() . '/mw-' . __CLASS__ . '-UID-88.lock';
+               $this->lockFile128 = wfTempDir() . '/mw-' . __CLASS__ . '-UID-128.lock';
+       }
+
+       /**
+        * @return UIDGenerator
+        */
+       protected static function singleton() {
+               if ( self::$instance === null ) {
+                       self::$instance = new self();
+               }
+               return self::$instance;
+       }
+
+       /**
+        * Get a statistically unique 64-bit unsigned integer ID string.
+        * The bits of the UID are prefixed with the time (down to the millisecond).
+        *
+        * These IDs are suitable as values for the shard column of sharded DB tables.
+        * If a column uses these as values, it should be declared UNIQUE to handle collisions.
+        * New rows almost always have higher UIDs, which makes B-TREE updates on INSERT fast.
+        * They can also be stored efficiently as a "BIGINT UNSIGNED" in MySQL.
+        *
+        * UID generation is serialized on each server (as the node ID is for the whole machine).
+        *
+        * @return string
+        * @throws MWException
+        */
+       public static function timestampedUID64() {
+               $generator = self::singleton();
+
+               // Acquire the UID lock file
+               $handle = fopen( $generator->lockFile64, 'a' );
+               if ( $handle === false ) {
+                       throw new MWException( "Could not open '{$this->lockFile64}'." );
+               } elseif ( !flock( $handle, LOCK_EX ) ) {
+                       fclose( $handle ); // bail out
+                       throw new MWException( 'Could not acquire local UID64 lock.' );
+               }
+               // Get the current UNIX timestamp on this server
+               $time = self::millitime(); // millisecond precision
+               // Delay so the next process on this server will generate higher UIDs
+               while ( self::lessThanOrEqualTime( self::millitime(), $time ) );
+               // Release the UID lock file
+               flock( $handle, LOCK_UN );
+               fclose( $handle );
+
+               // Generate a UID that is higher than the last one from this server
+               return $generator->newTimestampedID64( $time );
+       }
+
+       /**
+        * @param $time array Result of UIDGenerator::millitime()
+        * @return string
+        */
+       protected function newTimestampedID64( array $time ) {
+               list( $sec, $msec ) = $time;
+               $sec = $sec - self::EPOCH_MS_40; // start from epoch
+               # Take the 40 MSBs of "milliseconds since epoch" (rolls over in 2046)
+               if ( PHP_INT_SIZE === 8 ) { // 64 bit integers
+                       $ts = ( 1e3 * $sec + $msec );
+                       $id_bin = str_pad( decbin( $ts % pow( 2, 40 ) ), 40, '0', STR_PAD_LEFT );
+               } elseif ( extension_loaded( 'bcmath' ) ) { // 32 bit integers
+                       $ts = bcadd( bcmul( $sec, 1e3 ), $msec );
+                       $id_bin = wfBaseConvert( bcmod( $ts, bcpow( 2, 40 ) ), 10, 2, 40 );
+               } else {
+                       throw new MWException( 'bcmath extension required for 32 bit machines.' );
+               }
+               # Add the 24 bit node ID resulting in 64 bits total
+               $id_bin .= $this->nodeId24;
+               # Convert to a 1-20 digit integer string
+               if ( strlen( $id_bin ) !== 64 ) {
+                       throw new MWException( "Detected overflow for millisecond timestamp." );
+               }
+               return wfBaseConvert( $id_bin, 2, 10 );
+       }
+
+       /**
+        * Get a statistically unique 88-bit unsigned integer ID string.
+        * The bits of the UID are prefixed with the time (down to the microsecond).
+        *
+        * These IDs are suitable as values for the shard column of sharded DB tables.
+        * If a column uses these as values, it should be declared UNIQUE to handle collisions.
+        * New rows almost always have higher UIDs, which makes B-TREE updates on INSERT fast.
+        * They can also be stored reasonably as a "DECIMAL(27) UNSIGNED" in MySQL.
+        *
+        * UID generation is serialized on each server (as the node ID is for the whole machine).
+        *
+        * @return string
+        * @throws MWException
+        */
+       public static function timestampedUID88() {
+               $generator = self::singleton();
+
+               // Acquire the UID lock file
+               $handle = fopen( $generator->lockFile88, 'a' );
+               if ( $handle === false ) {
+                       throw new MWException( "Could not open '{$this->lockFile88}'." );
+               } elseif ( !flock( $handle, LOCK_EX ) ) {
+                       fclose( $handle ); // bail out
+                       throw new MWException( 'Could not acquire local UID88 lock.' );
+               }
+               // Get the current UNIX timestamp on this server
+               $time = self::microtime(); // microsecond precision
+               // Delay so the next process on this server will generate higher UIDs
+               while ( self::lessThanOrEqualTime( self::microtime(), $time ) );
+               // Release the UID lock file
+               flock( $handle, LOCK_UN );
+               fclose( $handle );
+
+               // Generate a UID that is higher than the last one from this server
+               return $generator->newTimestampedID88( $time );
+       }
+
+       /**
+        * @param $time array Result of UIDGenerator::microtime()
+        * @return string
+        */
+       protected function newTimestampedID88( array $time ) {
+               list( $sec, $usec ) = $time;
+               $sec = $sec - self::EPOCH_US_56; // start from epoch
+               # Take the 56 MSBs of "microseconds since epoch" (rolls over in 4354)
+               if ( PHP_INT_SIZE === 8 ) { // 64 bit integers
+                       $ts = ( 1e6 * $sec + $usec );
+                       $id_bin = str_pad( decbin( $ts % pow( 2, 56 ) ), 56, '0', STR_PAD_LEFT );
+               } elseif ( extension_loaded( 'bcmath' ) ) { // 32 bit integers
+                       $ts = bcadd( bcmul( $sec, 1e6 ), $usec );
+                       $id_bin = wfBaseConvert( bcmod( $ts, bcpow( 2, 56 ) ), 10, 2, 56 );
+               } else {
+                       throw new MWException( 'bcmath extension required for 32 bit machines.' );
+               }
+               # Add the 32 bit node ID resulting in 88 bits total
+               $id_bin .= $this->nodeId32;
+               # Convert to a 1-27 digit integer string
+               if ( strlen( $id_bin ) !== 88 ) {
+                       throw new MWException( "Detected overflow for microsecond timestamp." );
+               }
+               return wfBaseConvert( $id_bin, 2, 10 );
+       }
+
+       /**
+        * Get a statistically unique 128-bit unsigned integer ID string.
+        * The bits of the UID are prefixed with the time (down to the microsecond).
+        *
+        * These IDs are suitable as globally unique IDs, without any enforced uniqueness.
+        * New rows almost always have higher UIDs, which makes B-TREE updates on INSERT fast.
+        * They can also be stored reasonably as a "DECIMAL(39) UNSIGNED" in MySQL.
+        *
+        * UID generation is serialized on each server (as the node ID is for the whole machine).
+        *
+        * @return string
+        * @throws MWException
+        */
+       public static function timestampedUID128() {
+               $generator = self::singleton();
+
+               // Acquire the UID lock file
+               $handle = fopen( $generator->lockFile128, 'a' );
+               if ( $handle === false ) {
+                       throw new MWException( "Could not open '{$this->lockFile128}'." );
+               } elseif ( !flock( $handle, LOCK_EX ) ) {
+                       fclose( $handle ); // bail out
+                       throw new MWException( 'Could not acquire local UID128 lock.' );
+               }
+               // Get the current UNIX timestamp on this server
+               $time = self::microtime(); // microsecond precision
+               // Delay so the next process on this server will generate higher UIDs
+               while ( self::lessThanOrEqualTime( self::microtime(), $time ) );
+               // Release the UID lock file
+               flock( $handle, LOCK_UN );
+               fclose( $handle );
+
+               // Generate a UID that is higher than the last one from this server
+               return $generator->newTimestampedID128( $time );
+       }
+
+       /**
+        * @param $time array Result of UIDGenerator::microtime()
+        * @return string
+        */
+       protected function newTimestampedID128( array $time ) {
+               list( $sec, $usec ) = $time;
+               $sec  = $sec - self::EPOCH_US_56; // start from epoch
+               $rand = mt_rand( 0, 255 );
+               $tid  = $this->threadId ? $this->threadId : mt_rand( 0, 65535 );
+               # Take the 56 MSBs of "microseconds since epoch" (rolls over in 4354)
+               if ( PHP_INT_SIZE === 8 ) { // 64 bit integers
+                       $ts = ( 1e6 * $sec + $usec );
+                       $id_bin = str_pad( decbin( $ts % pow( 2, 56 ) ), 56, '0', STR_PAD_LEFT );
+               } elseif ( extension_loaded( 'bcmath' ) ) { // 32 bit integers
+                       $ts = bcadd( bcmul( $sec, 1e6 ), $usec );
+                       $id_bin = wfBaseConvert( bcmod( $ts, bcpow( 2, 56 ) ), 10, 2, 56 );
+               } else {
+                       throw new MWException( 'bcmath extension required for 32 bit machines.' );
+               }
+               # Add on 8 bits of randomness to make 64 bits total (2^8 = 256)
+               $id_bin .= str_pad( decbin( $rand ), 8, '0', STR_PAD_LEFT );
+               # Add on 16 bits of thread ID or randomness to make 80 bits total (2^16 = 65536)
+               $id_bin .= str_pad( decbin( $tid % 65536 ), 16, '0', STR_PAD_LEFT );
+               # Add the 48 bit node ID resulting in 128 bits total
+               $id_bin .= $this->nodeId48;
+               # Convert to a 1-39 digit integer string
+               if ( strlen( $id_bin ) !== 128 ) {
+                       throw new MWException( "Detected overflow for microsecond timestamp." );
+               }
+               return wfBaseConvert( $id_bin, 2, 10 );
+       }
+
+       /**
+        * @return array (current time in seconds, milliseconds since then)
+        */
+       protected static function millitime() {
+               list( $usec, $sec ) = explode( ' ', microtime() );
+               return array( (int)$sec, (int)( $usec * 1e3 ) );
+       }
+
+       /**
+        * @return array (current time in seconds, microseconds since then)
+        */
+       protected static function microtime() {
+               list( $usec, $sec ) = explode( ' ', microtime() );
+               return array( (int)$sec, (int)( $usec * 1e6 ) );
+       }
+
+       /**
+        * Returns true if time $t1 is <= time $t2
+        *
+        * @param $t1 array Result of UIDGenerator::microtime() or UIDGenerator::millitime()
+        * @param $t2 array Result of UIDGenerator::microtime() or UIDGenerator::millitime()
+        */
+       protected static function lessThanOrEqualTime( array $t1, array $t2 ) {
+               return ( $t1[0] < $t2[0] || ( $t1[0] === $t2[0] && $t1[1] <= $t2[1] ) );
+       }
+}
index 9bf7436..f5feaf9 100644 (file)
@@ -347,12 +347,12 @@ class MessageCache {
                }
 
                if ( !$success ) {
-                       # Bad luck... this should not happen
-                       $where[] = 'loading FAILED - cache is disabled';
-                       $info = implode( ', ', $where );
-                       wfDebug( __METHOD__ . ": Loading $code... $info\n" );
                        $this->mDisable = true;
                        $this->mCache = false;
+                       // This used to go on, but that led to lots of nasty side
+                       // effects like gadgets and sidebar getting cached with their
+                       // default content
+                       throw new MWException( "MessageCache failed to load messages" );
                } else {
                        # All good, just record the success
                        $info = implode( ', ', $where );
index be4036e..dfc5916 100644 (file)
@@ -229,6 +229,15 @@ interface IORMTable {
         */
        public function has( array $conditions = array() );
 
+       /**
+        * Checks if the table exists
+        *
+        * @since 1.21
+        *
+        * @return boolean
+        */
+       public function exists();
+
        /**
         * Returns the amount of matching records.
         * Condition field names get prefixed.
index a2ef944..e3c8aa7 100644 (file)
@@ -299,6 +299,21 @@ abstract class ORMTable extends DBAccessBase implements IORMTable {
                return $this->selectRow( array( 'id' ), $conditions ) !== false;
        }
 
+       /**
+        * Checks if the table exists
+        *
+        * @since 1.21
+        *
+        * @return boolean
+        */
+       public function exists() {
+               $dbr = $this->getReadDbConnection();
+               $exists = $dbr->tableExists( $this->getName() );
+               $this->releaseConnection( $dbr );
+
+               return $exists;
+       }
+
        /**
         * Returns the amount of matching records.
         * Condition field names get prefixed.
index 9afe69e..384b4f6 100644 (file)
@@ -38,6 +38,9 @@ class DifferenceEngine extends ContextSource {
         * @private
         */
        var $mOldid, $mNewid;
+       /**
+        * @var Content
+        */
        var $mOldContent, $mNewContent;
        protected $mDiffLang;
 
index 312b796..b200dcf 100644 (file)
@@ -321,9 +321,10 @@ abstract class DatabaseUpdater {
                foreach( $updates as $funcList ) {
                        $func = $funcList[0];
                        $arg = $funcList[1];
+                       $origParams = $funcList[2];
                        $ret = call_user_func_array( $func, $arg );
                        flush();
-                       $this->updatesSkipped[] = $arg;
+                       $this->updatesSkipped[] = $origParams;
                }
        }
 
@@ -380,6 +381,7 @@ abstract class DatabaseUpdater {
                $updatesDone = array();
                $updatesSkipped = array();
                foreach ( $updates as $params ) {
+                       $origParams = $params;
                        $func = array_shift( $params );
                        if( !is_array( $func ) && method_exists( $this, $func ) ) {
                                $func = array( $this, $func );
@@ -389,9 +391,9 @@ abstract class DatabaseUpdater {
                        $ret = call_user_func_array( $func, $params );
                        flush();
                        if( $ret !== false ) {
-                               $updatesDone[] = $params;
+                               $updatesDone[] = $origParams;
                        } else {
-                               $updatesSkipped[] = array( $func, $params );
+                               $updatesSkipped[] = array( $func, $params, $origParams );
                        }
                }
                $this->updatesSkipped = array_merge( $this->updatesSkipped, $updatesSkipped );
index 67c5083..cf6f1b9 100644 (file)
@@ -85,11 +85,8 @@ class JobQueueDB extends JobQueue {
                        ) {
                                global $wgMemc;
 
-                               $autoTrx = $dbw->getFlag( DBO_TRX ); // automatic begin() enabled?
                                if ( $atomic ) {
                                        $dbw->begin( __METHOD__ ); // wrap all the job additions in one transaction
-                               } else {
-                                       $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
                                }
                                try {
                                        // Strip out any duplicate jobs that are already in the queue...
@@ -116,15 +113,11 @@ class JobQueueDB extends JobQueue {
                                } catch ( DBError $e ) {
                                        if ( $atomic ) {
                                                $dbw->rollback( __METHOD__ );
-                                       } else {
-                                               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore automatic begin()
                                        }
                                        throw $e;
                                }
                                if ( $atomic ) {
                                        $dbw->commit( __METHOD__ );
-                               } else {
-                                       $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore automatic begin()
                                }
 
                                $wgMemc->set( $key, 'false', $ttl ); // queue is not empty
@@ -150,51 +143,43 @@ class JobQueueDB extends JobQueue {
 
                $uuid = wfRandomString( 32 ); // pop attempt
                $job = false; // job popped off
-               $autoTrx = $dbw->getFlag( DBO_TRX ); // automatic begin() enabled?
-               $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
-               try {
-                       // Occasionally recycle jobs back into the queue that have been claimed too long
-                       if ( mt_rand( 0, 99 ) == 0 ) {
-                               $this->recycleStaleJobs();
-                       }
-                       do { // retry when our row is invalid or deleted as a duplicate
-                               // Try to reserve a row in the DB...
-                               if ( in_array( $this->order, array( 'fifo', 'timestamp' ) ) ) {
-                                       $row = $this->claimOldest( $uuid );
-                               } else { // random first
-                                       $rand = mt_rand( 0, self::MAX_JOB_RANDOM ); // encourage concurrent UPDATEs
-                                       $gte  = (bool)mt_rand( 0, 1 ); // find rows with rand before/after $rand
-                                       $row  = $this->claimRandom( $uuid, $rand, $gte );
-                                       if ( !$row ) { // need to try the other direction
-                                               $row = $this->claimRandom( $uuid, $rand, !$gte );
-                                       }
-                               }
-                               // Check if we found a row to reserve...
-                               if ( !$row ) {
-                                       $wgMemc->set( $this->getEmptinessCacheKey(), 'true', self::CACHE_TTL );
-                                       break; // nothing to do
-                               }
-                               // Get the job object from the row...
-                               $title = Title::makeTitleSafe( $row->job_namespace, $row->job_title );
-                               if ( !$title ) {
-                                       $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
-                                       wfIncrStats( 'job-pop' );
-                                       wfDebugLog( 'JobQueueDB', "Row has invalid title '{$row->job_title}'." );
-                                       continue; // try again
-                               }
-                               $job = Job::factory( $row->job_cmd, $title,
-                                       self::extractBlob( $row->job_params ), $row->job_id );
-                               // Flag this job as an old duplicate based on its "root" job...
-                               if ( $this->isRootJobOldDuplicate( $job ) ) {
-                                       $job = DuplicateJob::newFromJob( $job ); // convert to a no-op
-                               }
-                               break; // done
-                       } while( true );
-               } catch ( DBError $e ) {
-                       $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore automatic begin()
-                       throw $e;
+               // Occasionally recycle jobs back into the queue that have been claimed too long
+               if ( mt_rand( 0, 99 ) == 0 ) {
+                       $this->recycleStaleJobs();
                }
-               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore automatic begin()
+               do { // retry when our row is invalid or deleted as a duplicate
+                       // Try to reserve a row in the DB...
+                       if ( in_array( $this->order, array( 'fifo', 'timestamp' ) ) ) {
+                               $row = $this->claimOldest( $uuid );
+                       } else { // random first
+                               $rand = mt_rand( 0, self::MAX_JOB_RANDOM ); // encourage concurrent UPDATEs
+                               $gte  = (bool)mt_rand( 0, 1 ); // find rows with rand before/after $rand
+                               $row  = $this->claimRandom( $uuid, $rand, $gte );
+                               if ( !$row ) { // need to try the other direction
+                                       $row = $this->claimRandom( $uuid, $rand, !$gte );
+                               }
+                       }
+                       // Check if we found a row to reserve...
+                       if ( !$row ) {
+                               $wgMemc->set( $this->getEmptinessCacheKey(), 'true', self::CACHE_TTL );
+                               break; // nothing to do
+                       }
+                       // Get the job object from the row...
+                       $title = Title::makeTitleSafe( $row->job_namespace, $row->job_title );
+                       if ( !$title ) {
+                               $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
+                               wfIncrStats( 'job-pop' );
+                               wfDebugLog( 'JobQueueDB', "Row has invalid title '{$row->job_title}'." );
+                               continue; // try again
+                       }
+                       $job = Job::factory( $row->job_cmd, $title,
+                               self::extractBlob( $row->job_params ), $row->job_id );
+                       // Flag this job as an old duplicate based on its "root" job...
+                       if ( $this->isRootJobOldDuplicate( $job ) ) {
+                               $job = DuplicateJob::newFromJob( $job ); // convert to a no-op
+                       }
+                       break; // done
+               } while( true );
 
                return $job;
        }
@@ -362,16 +347,8 @@ class JobQueueDB extends JobQueue {
                $dbw = $this->getMasterDB();
                $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
 
-               $autoTrx = $dbw->getFlag( DBO_TRX ); // automatic begin() enabled?
-               $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
-               try {
-                       // Delete a row with a single DELETE without holding row locks over RTTs...
-                       $dbw->delete( 'job', array( 'job_cmd' => $this->type, 'job_id' => $job->getId() ) );
-               } catch ( Exception $e ) {
-                       $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore automatic begin()
-                       throw $e;
-               }
-               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore automatic begin()
+               // Delete a row with a single DELETE without holding row locks over RTTs...
+               $dbw->delete( 'job', array( 'job_cmd' => $this->type, 'job_id' => $job->getId() ) );
 
                return true;
        }
index 512605d..0f22755 100644 (file)
@@ -4499,14 +4499,14 @@ class Parser {
                        '~~~' => $sigText
                ) );
 
-               # Context links: [[|name]] and [[name (context)|]]
+               # Context links ("pipe trick"): [[|name]] and [[name (context)|]]
                $tc = '[' . Title::legalChars() . ']';
                $nc = '[ _0-9A-Za-z\x80-\xff-]'; # Namespaces can use non-ascii!
 
-               $p1 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\))\\|]]/";           # [[ns:page (context)|]]
-               $p4 = "/\[\[(:?$nc+:|:|)($tc+?)( ?($tc+))\\|]]/";           # [[ns:page(context)|]]
-               $p3 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\)|)((?:, |,)$tc+|)\\|]]/"; # [[ns:page (context), context|]]
-               $p2 = "/\[\[\\|($tc+)]]/";                                      # [[|page]]
+               $p1 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\))\\|]]/";                  # [[ns:page (context)|]]
+               $p4 = "/\[\[(:?$nc+:|:|)($tc+?)( ?($tc+))\\|]]/";                    # [[ns:page(context)|]] (double-width brackets, added in r40257)
+               $p3 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\)|)((?:, |,)$tc+|)\\|]]/"; # [[ns:page (context), context|]]
+               $p2 = "/\[\[\\|($tc+)]]/";                                             # [[|page]]
 
                # try $p1 first, to turn "[[A, B (C)|]]" into "[[A, B (C)|A, B]]"
                $text = preg_replace( $p1, '[[\\1\\2\\3|\\2]]', $text );
index 0643cea..ae9bea2 100644 (file)
@@ -758,7 +758,7 @@ $2
 'sectioneditnotsupported-text' => 'بو صحیفه‌ده بؤلوم دَییشدیرمه‌سی دستکلنمیر.',
 'permissionserrors' => 'ایزین خطاسی',
 'permissionserrorstext' => 'سیز آشاغیداکی {{PLURAL:$1|دلیل|دلیل‌لر}}ه گؤره، او ایشه ایجازه‌نیز یوخدور.',
-'permissionserrorstext-withaction' => 'سیز آشاغیداکی {{PLURAL:$1|دلیل|دلیل‌لر}}ه گؤره، $2 ایشینه ایجازه‌نیز یوخدور.:',
+'permissionserrorstext-withaction' => 'سیز آشاغیداکی {{PLURAL:$1|دلیل|دلیل‌لر}}اوچون، $2 ایشینه ایجازه‌نیز یوخدور.:',
 'recreate-moveddeleted-warn' => "'''دیقت: سیز اؤنجه‌ده سیلینمیش بیر صفحه‌نی یئنی‌دن یارادیرسینیز.'''
 
 بو صفحه‌نین یئنی‌دن یارادماغی‌نین نه‌قدر اویغون اولدوغونو گرک نظرده آلاسینیز.
@@ -874,6 +874,9 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'revdelete-show-file-submit' => 'بلی',
 'revdelete-selected' => "'[[:$1]] صحیفه‌سی‌نین {{PLURAL:$2|سئچیلمیش نوسخه لری|سئچیلمیش نوسخه لری}}:'",
 'logdelete-selected' => "'ژورنالین {{PLURAL:$1|سئچیلمیش قئیدی|سئچیلمیش قئیدلری}}:'",
+'revdelete-suppress-text' => "ساخلاما 'یالنیز آشاغی‌داکی حال‌لار اوچون ایستیفاده ائدیلمه‌لی‌دیر:
+* اویگون‌سوز فردی معلومات
+*:' ائو اونوان‌لاری و تئلئفون نؤمره‌لری، سوسیال تهلوکه‌سیزلیک نؤمره‌لری، و س.'",
 'revdelete-legend' => 'محدودیتلری موعيينلشدیر:',
 'revdelete-hide-text' => 'صحیفه‌‌نین بو وئرسیياسی‌نین متنینی گیزله',
 'revdelete-hide-image' => 'فایلین ایچینده‌کیلرینی گیزلت',
@@ -1174,6 +1177,10 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'saveusergroups' => 'ایستیفاده‌چی قروپونو قئيد ائت',
 'userrights-groupsmember' => 'داخیل اولدوغو قروپلار:',
 'userrights-groupsmember-auto' => 'گومان ائدیلن عضو:',
+'userrights-groups-help' => 'بو ایستیفاده‌چی‌نین ایچینده اولدوغو قروپ‌لاری دییش‌دیره بیلرسینیز:
+* سئچیلمیش بیر قوتو، ایستیفاده‌چی‌نین او قروپا داخیل اولدوغو معناسینی وئرر
+* سئچیلمه‌ییب بیر قوتو، ایستیفاده‌چی‌نین او قروپدا اولمادیغی معناسینی وئرر.
+**، قروپو بیر دفعه میدانا گتیردیک‌دن سونرا سیلئمئجئغینیزی بیلدیریر، یا دا قارشی‌لیق‌لی اولا‌راق.',
 'userrights-reason' => 'ندن:',
 'userrights-no-interwiki' => 'سیزه باشقا ویکی لايیهه‌لرده‌کی ایستیفاده‌چیلرین ائستاتوسونو ديَیشمه‌يه ایزین وئریلمه‌يیب',
 'userrights-nodatabase' => '$1 وئریلنلر بازاسی يا مؤوجود دئيیل، يا دا لوکال دئيیل.',
@@ -1317,7 +1324,7 @@ $3 طرفین‌دن وئریلن سبب '$2",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|دَییشیکلیک}}',
-'recentchanges' => 'سون دَییشیک‌لیک‌لر',
+'recentchanges' => 'سون دَییشیکلر',
 'recentchanges-legend' => 'سون دییشیکلر سئچمه‌لری',
 'recentchanges-summary' => 'بو صحیفه‌ده، ویکی‌یه ان سون وئریلن دَییشیکلیکلری ایزله.',
 'recentchanges-feed-description' => 'ویکی‌ده‌کی ان سون ديَیشیکلیک‌لری بو يايیم کانالیندان ایزله‌يین.',
@@ -1404,6 +1411,8 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'badfilename' => 'فایلین آدی دییشیلدی. یئنی آدی: "$1".',
 'filetype-mime-mismatch' => '".$1" فایل اوزانتی‌سی فایلین میمئ تیپینه ($2) اویغون گلمیر.',
 'filetype-badmime' => '"$1" MIME تیپین‌دکی فایل‌لارین یوکلنمه‌سینه ایجازه وئریلمیر.',
+'filetype-bad-ie-mime' => 'بو فایل یوک‌لنه، چونکی اینتئرنئت اکسپلورر بونو، ایجازه وئریلمه‌ین و احتمالا زررلی فایل نؤوو اولان "$1" اولا‌راق تثبیت ائدیر.',
+'filetype-unwanted-type' => "'''\". \$1\"''' ایستنمه‌ین بیر فایل نؤوودور. تکلیف ائدیلن {{PLURAL: \$3 | فایل نؤوو | فایل نؤو‌لری}} \$2.",
 'filetype-missing' => 'فايلین هئچ بیر اوزانتیسی يوخدور (مثلا، ".jpg").',
 'empty-file' => 'سیز یول‌لادیغینیز فایل، بوش ایدی.',
 'file-too-large' => 'گؤندردیگینیز فایل چوخ بؤیوک‌دور.',
@@ -1419,6 +1428,12 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'fileexists' => 'یوکلمک ایستدیگینیز آددا فایل مؤوجوددور.
 لطفاً <strong>[[:$1]]</strong> کئچیدینی یوخلایین و بو فای‌لی یوکلمک ایستدیگینیزدن عمین اولون.
 [[$1|thumb]]',
+'fileexists-forbidden' => 'بو آددا بیر فايل وار، و اوزرینه يازیلما اولماز. 
+فايلینیزی يئنه ده يوکله‌مک ایسته‌يیرسینیزسه، خاهیش ائدیریک گئری دؤنوب يئنی بیر آد ایستیفاده ائدین.
+[[File:$1|thumb|center|$1]]',
+'fileexists-shared-forbidden' => 'بو آددا بیر فايل اورتاق آمباردا مؤوجود دیر. 
+فايلینیزی يئنه ده يوکله‌مک ایسته‌يیرسینیزسه، خاهیش ائدیریک گئری گئدیب يئنی بیر آد ایستیفاده ائدین. 
+[[File:$1|thumb|center|$1]]',
 'uploadwarning' => 'يوکله‌مه خبردارلیغی',
 'savefile' => 'فايلی قئيد ائت',
 'uploadedimage' => '"[[$1]]" یوکلندی',
@@ -1454,13 +1469,28 @@ $1',
 'backend-fail-delete' => '"$1" فایلن سیله بیلمه سینیز.',
 'backend-fail-copy' => '"$1" فايلی "$2" فايلینا کوپي‌لانمیر.',
 
+# ZipDirectoryReader
+'zip-file-open-error' => 'فايل زیپ يوخلامالاری اوچون آچیلارکن بیر خطاایله قارشیلاشیلدی.',
+'zip-wrong-format' => 'گؤستریلن فايل زیپ فايلی دئيیل.',
+'zip-unsupported' => 'فايل، مئدیياویکی طرفیندن دستکلنمه‌ين زیپ خصوصیتلرینه صاحب بیر زیپ فايلی. 
+تهلوکه‌‌سیزلیک نظارتی اويغون بیر شکیلده گئرچئکلئشتیریلئمیيور.',
+
 # Special:UploadStash
 'uploadstash' => 'گیزلی يوکله‌مه',
+'uploadstash-summary' => 'بو صحیفه‌‌ يوکلنمیش(و يا يوکلنمکده دیر) آمما هله ویکیده نشر اولونمامیش فايللارا چاتماغی تعمین ائدر. بو فايللار يالنیز يوکله‌يه‌نی طرفیندن گؤروله بیلر.',
 'uploadstash-clear' => 'مووققتی فايللاری تمیزله',
+'uploadstash-nofiles' => 'سیزین هئچ آمبار اولموش فایلینیز یوخدور.',
+'uploadstash-badtoken' => 'چالیشمانین حیاتا کئچیریلمه‌سی باشاریسیز اولدو، احتیماللا تنزیمله‌مه قايدالاری زامان آشیمینا معروض قالدی. يئنیدن چالیشین.',
+'uploadstash-errclear' => 'فايللارین سیلینمه‌سی باشاریسیز اولدو.',
 'uploadstash-refresh' => 'فايل سیياهیسینی يئنیله',
+'invalid-chunk-offset' => 'اعتبارسیز یئربه‌یئر',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'گیریش قاداغاندیر',
+'img-auth-nopathinfo' => 'PATH_INFO یوخدور.
+سئروئرینیز بو معلوماتی کئچیرمک اوچون نیزاملانمامیش. 
+سی‌جی‌آی اولا بیلر و img_auth دستکله‌نیلمیر اولا بیلر. 
+https://www.mediawiki.org/wiki/Manual:Image_Authorization صحیفه‌‌سینه باخین.',
 'img-auth-notindir' => 'ایسته‌دیگینیز يول قورولموش يوکله‌مه قوولوغونا دئيیل.',
 'img-auth-badtitle' => '«$1» ایله اعتبارلی بیر مؤوضو یوخدور....',
 'img-auth-nologinnWL' => 'گیریش ائتمه‌دینیز و «$1» آغ سیياهیدا دئيیل.',
@@ -1796,7 +1826,7 @@ $1',
 # E-mail user
 'mailnologin' => 'گؤندرمه آدرسی یوخدور',
 'mailnologintext' => 'باشقا ایستیفاده‌چیلره ایمیل گؤندرک اوچون، [[Special:UserLogin|گیریش]] ائدیب و [[Special:Preferences|ترجیحلر]]ینیزده گئچرلی ایمیل آدرسی وئرمه‌لیسینیز.',
-'emailuser' => 'بÙ\88 Ø§Û\8cØ´Ù\84دÙ\86ه ایمیل گؤندر',
+'emailuser' => 'بÙ\88 Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8c Û\8cه ایمیل گؤندر',
 'emailuser-title-target' => 'بو {{GENDER:$1|ایستیفاده‌چی}}‌یه ایمیل گؤندر',
 'emailuser-title-notarget' => 'ایستیفاده‌چی‌یه ایمیل گؤندر',
 'emailpage' => 'ایستیفاده‌چی‌یه ایمیل گؤندر',
@@ -1995,6 +2025,8 @@ $نئwپاگئ
 'undeletepagetitle' => "'اشاغی‌داکی، [[:$1|$1]] صحیفه‌سی‌نین سیلینمیش دییشیک‌لیک‌لرین‌دن ایبارتدیر.",
 'viewdeletedpage' => 'سیلینمیش صحیفه‌لری گؤستر',
 'undelete-fieldset-title' => 'دییشیک‌لیک‌لری گئری یوکله',
+'undeletehistory' => 'اگر صحیفه‌‌نی گئری گتیرسه‌نیز، بوتون رئویزيونلار کئچمیشه گئری گتیریله‌جک. 
+سیلیندیکدن سونرا عینی آدلا يئنی بیر صحیفه‌‌ يارانمیشسا، گئری گلن رئویزيونلار مؤوجود اولان صحیفه‌‌نین کئچمیشینده گؤرونه‌جک.',
 'undelete-revision' => '$3 طرفین‌دن $1 صحیفه‌سی‌نین سیلینمیش دییشدیر ‌سین ($4 تاریخیندئن بری، $5 ساعتدا):',
 'undelete-nodiff' => 'اولکی دَییشمه تاپیلمادی.',
 'undeletebtn' => 'برپا ائت',
@@ -2103,6 +2135,7 @@ $1',
 ** چوخسای‌لی حساب‌دان سوی ایستیفاده‌یه گؤره
 ** قاداغان اولونموش ایستیفاده‌چی آدینا گؤره',
 'ipbcreateaccount' => 'حساب آچمانی محدودلاش‌دیر',
+'ipbenableautoblock' => 'مؤوجود اولان مانعه تؤرتمه‌لری گؤستر...',
 'ipbsubmit' => 'بو ایستیفاده چی نی باغلا',
 'ipbother' => 'باشقا واخت',
 'ipboptions' => '2 ساعت:2 hours,1 گون:1 day,3 گونلر:3 days,1 هفته:1 week,2 هفته‌لر:2 weeks,1 آی:1 month,3 آیلار:3 months,6 آیلار:6 months,1 ایل:1 year,مدتسیز:infinite',
@@ -2122,13 +2155,15 @@ $1',
 'ipb-edit-dropdown' => 'باغلاما سبب‌لرینی دییشدیر',
 'ipb-unblock-addr' => '$1 آچیلدی',
 'ipb-unblock' => 'ایستیفاده چی نین یا دا آی پی نین آچیلماسی',
+'ipb-blocklist' => 'مؤوجود بلوکلاری گؤستر',
 'ipb-blocklist-contribs' => '$1 ایستیفاده‌چی فعالیتلری',
+'unblockip' => 'ایستیفاده‌چی‌نین باغلانماسین گؤتور',
 'ipusubmit' => 'بو بلوکو گؤتور',
 'unblocked' => '[[User:$1|$1]]  - نین بلوکو گؤتورولدو',
 'unblocked-range' => '$1-نین بلوکو گؤتورولدو',
 'unblocked-id' => '$1-نین بلوکو گؤتورولدو',
 'blocklist' => 'بلوکلانمیش ایستیفاده‌چیلر',
-'ipblocklist' => 'بÙ\84Ù\88Ú©Ù\84اÙ\86Ù\85Û\8cØ´ Ø§Û\8cØ´Ù\84دÙ\86لر',
+'ipblocklist' => 'بÙ\84Ù\88Ú©Ù\84اÙ\86Ù\85Û\8cØ´ Ø§Û\8cستÛ\8cÙ\81ادÙ\87â\80\8cÚ\86Û\8cلر',
 'ipblocklist-legend' => 'بلوکلانمیش ایستیفاده‌چینی آختار',
 'blocklist-userblocks' => 'حساب بلوکلارینی گیزلت',
 'blocklist-tempblocks' => 'مووققتی بلوکلاری گیزله',
@@ -2157,7 +2192,7 @@ $1',
 'change-blocklink' => 'بلوکلامانی ديَیشدیر',
 'contribslink' => 'چالیشمالار',
 'emaillink' => 'ایمیل گؤندر',
-'blocklogpage' => 'بلوکلاما قئیدلری',
+'blocklogpage' => 'باغلانما قئیدلری',
 'blocklogentry' => 'طرفیندن [[$1]] بلوْکلاندی، بلوْک مدتی: $2 $3',
 'block-log-flags-anononly' => 'يالنیز قئيدیاتسیز ایستیفاده‌چیلر',
 'block-log-flags-nocreate' => 'حساب یاراتماق اولماز',
@@ -2176,10 +2211,18 @@ $1',
 'proxyblocker' => 'پروکسی باغلییان',
 'proxyblocker-disabled' => 'بو ایش باغلانیب دیر.',
 'proxyblocksuccess' => 'اولدو.',
+'cant-block-while-blocked' => 'سیز ائنگئللیيکئن باشقا ایستیفاده‌چیلری مانعه تؤره‌ده بیلمزسینیز.',
+'cant-see-hidden-user' => 'قارشیسینی آلماق ایسته‌دیگینیز ایستیفاده‌چی اونسوز دا مانعه تؤره‌دیلمیش و گیزلنمیش. کوللانیجیگیزلئ ایجازه‌نیز اولمادیغی اوچون، ایستیفاده‌چی‌نین قارشیسی‌نین آلینماسینی گؤره بیلمز يا دا ديَیشدیره.',
+'ipbblocked' => 'دیگر ایستیفاده‌چیلری مانعه تؤره‌ده بیلمز يا دا مانعه تؤرتمه‌سینی قالدیرا بیلمز، چونکی اؤزونوز ائنگئللئنمیشسیز',
+'ipbnounblockself' => 'اؤز بوولوکلانمانیزی کالدیرمانیزا ایجازه وئریلمیر',
 
 # Developer tools
 'lockdb' => 'وئریلن‌لر بازاسینی باغلا',
 'unlockdb' => 'وئریلن‌لر بازاسین‌دان باغلانتی سین گؤتور',
+'lockdbtext' => 'وئریلنلر بازاسینی کیلیدله‌مک؛ بوتون ایستیفاده‌چیلرین صحیفه‌‌لری، سئچیملرینی و ایزلئمئ سیياهیلارینی ديَیشدیرمه‌لرینی و وئریلنلر بازاسیندا ديَیشیکلیک طلب ائدن دیگر شئيلری تخیره آلیر. 
+خاهیش ائدیریک ائتمک ایسته‌دیگینیزین بو اولدوغونو و باخیم ایشلرینیز بیتدیگینده وئریلنلر بازاسینی ایشه سالماغی تسدیق ائدین.',
+'unlockdbtext' => 'وئریلنلر بازاسی‌نین کیلیدینی آچماق؛ بوتون ایستیفاده‌چیلره صحیفه‌‌لری، سئچیملرینی و ایزلئمئ سیياهیلارینی ديَیشدیرمه‌لرینی و وئریلنلر بازاسیندا ديَیشیکلیک طلب ائدن دیگر شئيلری ائده بیلمه قابیلیتینی گئری وئرر. 
+خاهیش ائدیریک ائتمک ایسته‌دیگینیزین بو اولدوغونو تسدیق ائدین.',
 'lockconfirm' => 'بلی، من حقیقتن وئریلن‌لر بازاسینین باغلاماق ایستییرم.',
 'unlockconfirm' => 'بلی، من حقیقتن وئریلن‌لر بازاسینین باغلانمانی آچماق ایستییرم.',
 'lockbtn' => 'وئریلن‌لر بازاسینی باغلا',
@@ -2335,9 +2378,9 @@ $1',
 'tooltip-search-go' => 'اولورسا بو آددا بیر صحیفه‌یه گئت',
 'tooltip-search-fulltext' => 'بو یازی اولان صحیفه‌لری آختار',
 'tooltip-p-logo' => 'آنا صحیفه‌یه باخ',
-'tooltip-n-mainpage' => 'آنا صحیفه‌یه باخین',
+'tooltip-n-mainpage' => 'آنا صحیفه‌ یه باخین',
 'tooltip-n-mainpage-description' => 'آنا صحیفه‌یه باخین',
-'tooltip-n-portal' => 'پروژه‌یه گؤره، سیز نه ایش گوره بیلرسیز، هاردا نه‌لری تاپا بیلرسیز',
+'tooltip-n-portal' => 'پروژه‌ یه گؤره، سیز نه ایش گوره بیلرسیز، هاردا نه‌لری تاپا بیلرسیز',
 'tooltip-n-currentevents' => 'گونجل اولایلارلا ایلگیلی بیلگیلر تاپ',
 'tooltip-n-recentchanges' => 'بو ویکی‌ده سون دَییشیکلرین لیستی',
 'tooltip-n-randompage' => 'بیرصحیفه صحیفه‌لردن گتیر',
@@ -2401,7 +2444,12 @@ $1',
 'pageinfo-header-edits' => 'تاریخچه نی دییشدیر',
 'pageinfo-header-restrictions' => 'صفحه دن محافظت ائله مک',
 'pageinfo-header-properties' => 'صحیفه خصوصیت‌لری',
+'pageinfo-display-title' => 'گؤستریلن باشلیق',
+'pageinfo-default-sort' => 'فرض ائدیلن سیرالاما آچاری',
+'pageinfo-length' => 'صحیفه‌‌ اوزونلوغو (بايت)',
 'pageinfo-article-id' => 'صحیفه اید-سی',
+'pageinfo-robot-policy' => 'آختاریش سیستمین دورومو',
+'pageinfo-robot-index' => 'سییاهه آلینیشی',
 'pageinfo-views' => 'گؤسترمه صحیفه‌سی',
 'pageinfo-watchers' => 'صحیفه‌نین تاماشا‌چی سایی',
 'pageinfo-firstuser' => 'صحیفنی یارا‌دان',
@@ -2410,6 +2458,10 @@ $1',
 'pageinfo-lasttime' => 'سونونجو دییشدیر‌نین تاریخی',
 'pageinfo-edits' => 'دییشدیر‌لرین سایی',
 'pageinfo-authors' => 'فرق‌لی مؤلف‌لرین سایی',
+'pageinfo-recent-edits' => 'سون زامانلارداکی تنزیمله‌مه‌لر (سون $1)',
+'pageinfo-recent-authors' => 'فرقلی يازارلارین سون سايی',
+'pageinfo-magic-words' => 'سیحیرلی {{PLURAL:$1|سؤزلر |سؤزلر }} ($1)',
+'pageinfo-hidden-categories' => 'گیزلی {{PLURAL:$1|بؤلمه|بؤلمه‌لر}} ($1)',
 'pageinfo-redirectsto-info' => 'بیلگی',
 'pageinfo-contentpage-yes' => 'بلی',
 'pageinfo-protect-cascading-yes' => 'بلی',
@@ -2474,7 +2526,7 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 دقیق|$1 دقیقه}}',
 'hours' => '{{PLURAL:$1|$1 ساعت |$1 ساعت}}',
 'days' => '{{PLURAL:$1|$1 گون |$1 گون}}',
-'ago' => 'اول',
+'ago' => '$1 اؤنجه',
 
 # Bad image list
 'bad_image_list' => 'فوْرمات بۇ شکیلده اوْلمالیدیر: 
@@ -2851,10 +2903,33 @@ $1',
 # Core parser functions
 'duplicate-defaultsort' => '\'\'\'دیققت:\'\'\' احتیمال ائدیلن "$2" دفالت آچاری اول‌کی "$1" دفالت آچارینی کئچرسیز ائدیر.',
 
+# Special:Version
+'version-extension-functions' => 'علاوه‌‌ فوبکسیيالار',
+'version-hook-name' => 'چنگه‌لین آدی',
+'version-hook-subscribedby' => 'طرفیندن گیریش‌‌میش',
+'version-version' => '(نسخه $1)',
+'version-license' => 'لیسانس',
+'version-poweredby-credits' => "بو wیکی ' ''[//www.mediawiki.org/ مئدیاwیکی]'ع' پروقرامی ایستیفاده ائدیله‌رک يارادیلمیشدیر، یاازارلار © 2001-$1 $2.",
+'version-poweredby-others' => 'آیریلار',
+'version-software' => 'يوکلو پروقرام',
+'version-software-product' => 'محصول',
+'version-software-version' => 'نوسخه‌',
+'version-entrypoints' => 'گیریش نقطه‌‌سی‌نین آدرسی',
+'version-entrypoints-header-entrypoint' => 'گیریش نقطه‌‌سی',
+'version-entrypoints-header-url' => 'اینترنت آدرسی',
+
 # Special:FilePath
+'filepath' => 'فايل يولو',
+'filepath-page' => 'فایل:',
 'filepath-submit' => 'گئت',
+'filepath-summary' => 'بو اؤزل صحیفه‌‌ بیر فايل اوچون تام يولو گتیرر. 
+شکیللر تام تصویرین گؤستریلیر، دیگر فايل نؤولری ایله باغلی پروقراملاری بیرباشا ایشه باشلايیر.',
 
 # Special:FileDuplicateSearch
+'fileduplicatesearch' => 'دوبلیکات فايل آختاریشی',
+'fileduplicatesearch-summary' => 'تعمین ائتمک ديَری دؤشه‌مه‌سینده بنزر فايللاری آختار.',
+'fileduplicatesearch-legend' => 'Dublikatı axtar',
+'fileduplicatesearch-filename' => 'فايل آدی:',
 'fileduplicatesearch-submit' => 'آختار',
 'fileduplicatesearch-noresults' => '"$1" آدیندا فایل تاپیلمادی.',
 
@@ -2893,6 +2968,7 @@ $1',
 'tag-filter-submit' => 'فیلتر',
 'tags-title' => 'یاپیشقان',
 'tags-tag' => 'یاپیشقان آدی',
+'tags-display-header' => 'ديَیشیکلیک لیستئلئریندئکی گؤرونوش',
 'tags-description-header' => 'آنلامینین تام آچیقلاماسی',
 'tags-hitcount-header' => 'یاپیشقانلی دییشیک‌لیک‌لر',
 'tags-edit' => 'دَییشدیر',
index d25bfbe..d78fbee 100644 (file)
@@ -134,8 +134,8 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorie|Kategorina}}',
-'category_header' => 'Seiten in da Kategorie „$1“',
-'subcategories' => 'Unterkategorien',
+'category_header' => 'Seitn in da Kategorie „$1“',
+'subcategories' => 'Untakategorina',
 'category-media-header' => 'Medien in da Kategorie „$1“',
 'category-empty' => "''De Kategorie enthoit im Moment koane Seitn und koane Medien ned.''",
 'hidden-categories' => '{{PLURAL:$1|Vasteckte Kategorie|Vasteckte Kategorina}}',
@@ -144,11 +144,11 @@ $messages = array(
 'category-subcat-count-limited' => 'In de Kategorie {{PLURAL:$1|is de foigande Unterkategorie|san de foiganden Unterkategorien}} eihsortird:',
 'category-article-count' => '{{PLURAL:$2|De Kategorie enthoit foigernde Seiten:|{{PLURAL:$1|Foigernde Seiten is aane voh insgsåmt $2 Seiten in derer Kategorie:|Es wern $1 voh insgsåmt $2 Seiten in derer Kategorie åzaagt:}}}}',
 'category-article-count-limited' => 'De {{PLURAL:$1|foigande Seiten is|foiganden $1 Seiten san}} in derer Kategorie enthoiden:',
-'category-file-count' => '{{PLURAL:$2|De Kategorie enthoid nua de foigande Datei.|De {{PLURAL:$1|foigande Datei is|$1 foigandn Datein san}} in dea Kategorie, vo $2 total.}}',
+'category-file-count' => '{{PLURAL:$2|De Kategorie enthoid foigende Datei:|{{PLURAL:$1|Foigende Datei is oane vo insgsamt $2 Datein in dera Kategorie:|Es wean $1 von insgsamt $2 Datein in dera Kategorie ozoagt:}}}}',
 'category-file-count-limited' => "{{PLURAL:$1|D' foingde Datei is|De foingden $1 Datein san}} in de Kategorie eisortird:",
-'listingcontinuesabbrev' => '(Furtsétzung)',
+'listingcontinuesabbrev' => '(Fortsetzung)',
 'index-category' => 'Indizirde Seiten',
-'noindex-category' => 'Néd-indizirde Seiten',
+'noindex-category' => 'Ned-indiziade Seitn',
 'broken-file-category' => 'Seiten mid kaputte Daateilinks',
 
 'about' => 'Iba',
@@ -189,14 +189,14 @@ $messages = array(
 'namespaces' => 'Namasramm',
 'variants' => 'Variantn',
 
-'errorpagetitle' => 'Feeler',
-'returnto' => 'Zruck zua da Seiten $1.',
+'errorpagetitle' => 'Fehla',
+'returnto' => 'Zruck za da Seitn $1.',
 'tagline' => 'Aus {{SITENAME}}',
 'help' => 'Huif',
 'search' => 'Suach',
 'searchbutton' => 'Suacha',
 'go' => 'Ausfyrn',
-'searcharticle' => 'Artiké',
+'searcharticle' => 'Artikl',
 'history' => 'Versiónen',
 'history_short' => 'Gschicht oschaugn',
 'updatedmarker' => '(gänderd)',
@@ -289,7 +289,7 @@ Schaug auf [[Special:Version|Versiónsseiten]]",
 'youhavenewmessagesmulti' => 'Du host neiche Nochrichtn: $1',
 'editsection' => 'Werkln',
 'editold' => 'Werkln',
-'viewsourceold' => 'Quötext åzoang',
+'viewsourceold' => 'Quejtext ozoagn',
 'editlink' => 'werkln',
 'viewsourcelink' => 'In Quejtext ozoagn',
 'editsectionhint' => 'Obschnitt beorbatn: $1',
@@ -376,8 +376,8 @@ Fois des ned zuatrifft, hosd eventuell an Fehla im Programm gfundn. Bittschee in
 'cannotdelete' => 'Dé Seiten óder Daatei "$1" kå néd gléschd wern.
 Méglicherweis iss schoh vohram åndern gléschd worn.',
 'cannotdelete-title' => 'Seiten „$1“ kå néd gléschd wern',
-'badtitle' => 'néd gütiger Titel',
-'badtitletext' => 'Da Titel voh da ågforderden Seiten is néd gütig, laar óder a ungütiger Sproochlink vohram åndern Wiki.',
+'badtitle' => 'koa gitiga Titl',
+'badtitletext' => 'Da Titl voh da ogfordatn Seitn is ned gitig, laar oda a ungitiga Sprochlink vonam andan Wiki.',
 'perfcached' => "Dé fóigernden Daaten staummern aus'm Cache und san méglicherweis nimmer aktuö. Maximoi {{PLURAL:$1|oah Ergebnis is|$1 Ergebniss san}} im Cache vafiagbor.",
 'perfcachedts' => "Dé Daaten staummern aus 'm Cache. Da Zeidbunkt voh da létzden Aktualisiarung: $1. Maximoi {{PLURAL:$4|oah Ergebnis is|$4 Ergebniss san}} im Cache vafiagbor.",
 'querypage-no-updates' => "'''Dé Aktualisiarungsfunkzión voh derer Seiten is derzeid deaktivird. Dé Daaten wern bis auf Weiders néd daneiert.'''",
@@ -415,17 +415,17 @@ $2",
 
 Du kåst {{SITENAME}} iatzerd anónym weiderdoah, óder di danaid unterm söwing óder am åndern Benutzernåm <span class='plainlinks'>[$1 åmöden]</span>.
 Beochtt ower, daas oanige Seiten noh åzoang kennern, daas du ågmödt bist, sólång du néd deih Browsercache glaard host.",
-'yourname' => 'Benutzernåm:',
-'yourpassword' => 'Posswort:',
+'yourname' => 'Nutzanama:',
+'yourpassword' => 'Passwort:',
 'yourpasswordagain' => 'Es Passwort no amoi eigebm',
-'remembermypassword' => 'Mid dém Browser dauerhoft ågmödt bleim (maximoi $1 {{PLURAL:$1|Dog|Dog}})',
+'remembermypassword' => 'Mitm Brausa dauahoft ogmejd bleibm (maximoi $1 {{PLURAL:$1|Dog|Dog}})',
 'securelogin-stick-https' => "Noch'm Auhmöden mid HTTPS vabunden bleim",
 'yourdomainname' => 'Eanerne Domain:',
 'externaldberror' => 'Entweder es ligt a Feeler bai da externen Authentifiziarung vur oder du derfst dai externs Benytzerkonto ned aktualisirn.',
-'login' => 'Åmöden',
+'login' => 'Eilogga',
 'nav-login-createaccount' => 'Eilogga / Konto olegn',
 'loginprompt' => 'Zua Omejdung miassen Cookies aktiviat sei.',
-'userlogin' => 'Åmöden / Kontó erstön',
+'userlogin' => 'Eilogga / Konto olegn',
 'userloginnocreate' => 'Åmöden',
 'logout' => 'Obmöden',
 'userlogout' => 'Auslogga',
@@ -496,7 +496,7 @@ Es muass sichergstöd seih, daas Cookies aktivierd san. Danoch bittscheh d' Seit
 'minoredit' => 'Nua Kloanigkeidn san vaendat worn',
 'watchthis' => "D' Seiten beówochten",
 'savearticle' => 'Seitn speichan',
-'preview' => 'Vurschau',
+'preview' => 'Vorschau',
 'showpreview' => 'Vorschau zoagn',
 'showdiff' => 'Endarunga zoagn',
 'anoneditwarning' => "Du beorweitsd dé Seiten ois néd-ågmöidt. Wånn du dé speichertsd, werd deih aktuelle IP-Adress in da Versiónsgschichd aufzeichnet und is dodamid unwiaderruafflich '''éffmtléch''' zum åschauh.",
@@ -514,9 +514,9 @@ Es muass sichergstöd seih, daas Cookies aktivierd san. Danoch bittscheh d' Seit
 
 Des Posswort fyr des naiche Benutzerkonto kå auf da Speziaalseiten  „[[Special:ChangePassword|Posswort ändern]]“ gändert wern.',
 'newarticle' => '(Neich)',
-'newarticletext' => "Du bist am Link zua ner Seiten gfóigt, dé néd vurhånden is.
-Daas d' dé Seiten åléng kåst, trog dein Text in dé untensteeherde Boxen eih (schaug unter da [[{{MediaWiki:Helppage}}|Hüfeseiten]] fyr merer Informaziónen).
-Bist du föschlicherweis dodan, dånn druck dé '''Zruck'''-Schoitflächen voh deim Browser.",
+'newarticletext' => 'Du bist am Link gfoigt, wos no koa Seitn gibt.
+Um de Seitn ozlegn, trog dein Text im untan Kostn ei (schaug af da [[{{MediaWiki:Helppage}}|Huifeseitn]] fia mea Infos).
+Wens a Irrtum is, dassd do bist, nach druck in Zruck-Knopf vom Brausa.',
 'anontalkpagetext' => "---- ''De Seiten werd dodazua hergnumma, am ned-ågmöiderten Benutzer Nochrichten z' hinterlossen.
 Wånnst mid de Kommentare auf derer Seiten nix åfanga kåst, is vamuatlich da friarerne Inhower vo derer IP-Adress gmoat und du kåstas ignorirn.
 Wånnst a anonymer Benutzer bist und denkst, das irrelevante Kommentare ån di grichtt worn san, [[Special:UserLogin|möid de bittschee å]], um zuakynfteg Vawirrung z' vamein.''",
@@ -565,7 +565,7 @@ Zur Informazion foigt da aktuöie Logbuachaitrog:",
 'templatesusedpreview' => "{{PLURAL:$1|De foigande Vurlog werd|D' foiganden Vurlong wern}} in derer Saiten-Vurschau vawendt:",
 'templatesusedsection' => '{{PLURAL:$1|Dé fóigende Vurlog werd|Fóigende Vurlong wern}} voh dém Obschnit vawendt:',
 'template-protected' => '(schreibgschitzt)',
-'template-semiprotected' => '(schreibgschytzd fyr néd-ågmödte Benützer)',
+'template-semiprotected' => '(schreibgschitzt fia ned-ogmejdte Nutza)',
 'hiddencategories' => 'De Seitn is in {{PLURAL:$1|a vasteckde Kategorie|$1 vasteckde Kategorina}} eisortiad:',
 'nocreatetitle' => 'De Erstöiung vo naiche Saiten is aigschränkt.',
 'nocreate-loggedin' => "Du host koah Berechtigung, neiche Seiten z' erstön.",
@@ -584,7 +584,8 @@ Des Lesch- und Vaschiab-Logbuach dazua findsd do:",
 'post-expand-template-inclusion-warning' => 'Obocht: De Gress vo eibundne Vorlong is z gross.
 A poar Vorlogn wean ned eibundn.',
 'post-expand-template-inclusion-category' => 'Seitn, wo d Gress vo de eibundnan Vorlogn ibaschrittn is',
-'post-expand-template-argument-warning' => "'''Ówocht:''' Dé Seiten enthoit minderstens oah Argument in ner Vurlog, dés expandird z' gróss is. Dé Argumentt wern ignorird.",
+'post-expand-template-argument-warning' => "'''Obocht:''' De Seitn enthoit mindastns oa Argument in da Vorlog, wo expandiat z grouss is. 
+De Parameta wean ignoriad.",
 'post-expand-template-argument-category' => 'Seiten, dé ignorirde Vurlongargumentt enthoiden',
 
 # "Undo" feature
@@ -594,7 +595,7 @@ A poar Vorlogn wean ned eibundn.',
 'cantcreateaccounttitle' => 'Benutzerkonto kå ned erstöd wern',
 
 # History pages
-'viewpagelogs' => 'Logbiacher fyr dé Seiten åzoang',
+'viewpagelogs' => 'Logbiacha fia de Datei ozoagn',
 'currentrev' => 'Aktuelle Versión',
 'currentrev-asof' => 'Letzte Version vo $1',
 'revisionasof' => 'Version vom $1',
@@ -607,11 +608,11 @@ A poar Vorlogn wean ned eibundn.',
 'last' => 'Friaare',
 'page_first' => 'Auhfaung',
 'page_last' => 'End',
-'histlegend' => "Zur da Auhzoag voh dé Änderrungen oahfoch dé z' vagleichenden Versiónen auswön und d' Schoitflächen „{{int:compareselectedversions}}“ drucken.<br />
-* ({{int:cur}}) = Unterschiad zua da aktuön Versión, ({{int:last}}) = Unterschiad zua da vurhering Versión
-* Uarzeid/Daatum = Versión zua derer Zeid, Benutzernaum/IP-Adress vom Beorweiter, {{int:minoreditletter}} = Kloane Änderrung",
-'history-fieldset-title' => 'Suach in da Versiónsgschicht',
-'history-show-deleted' => 'netter gléschde Versiónen',
+'histlegend' => 'Zua Ozoag vo de Endarunga oafoch de z vagleichandn Versiona und Schoitflechn „{{int:compareselectedversions}}“ druckn.<br />
+* ({{int:cur}}) = Unterschied zua aktuelln Version, ({{int:last}}) = Unterschied zua vorherign Version
+* Uhrzeid/Datum = Version za dera Zeid, Nutzanama/IP-Adress vom Beorbata, {{int:minoreditletter}} = Kloane Endarung',
+'history-fieldset-title' => 'Suach in da Versionsgschicht',
+'history-show-deleted' => 'Nua gleschte Versiona',
 'histfirst' => 'Ejtaste',
 'histlast' => 'Neiaste',
 'historyempty' => '(laar)',
@@ -665,7 +666,7 @@ Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}}
 'nextn-title' => '{{PLURAL:$1|Foilgends Ergebnis|Foigende $1 Ergebniss}}',
 'shown-title' => 'Zoag $1 {{PLURAL:$1|Ergebnis|Ergebniss}} pro Seitn',
 'viewprevnext' => 'Zoag ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-exists' => "'''Es gibt a Seiten, dé'n Nåmen „[[:$1]]“ hod.'''",
+'searchmenu-exists' => "'''Es gibt a Seiten, wo „[[:$1]]“ hoasst.'''",
 'searchmenu-new' => "'''De Seitn „[[:$1]]“ in em Wiki eastejn.'''",
 'searchprofile-articles' => 'Inhoidsseitn',
 'searchprofile-project' => 'Huif- und Projektseitn',
@@ -803,7 +804,7 @@ Stand: $4, $5 Uhr.",
 'recentchangeslinked-feed' => 'Valinkts priaffm',
 'recentchangeslinked-toolbox' => 'Endarunga af valinktn Seitn',
 'recentchangeslinked-title' => 'Änderrungen ån Seiten, dé voh „$1“ valinkt san',
-'recentchangeslinked-noresult' => 'Im ausgwöden Zeidraum san an dé valinkden Seiten koane Änderrungen vurgnummer worn.',
+'recentchangeslinked-noresult' => 'Im ausgwejtn Zeidraum san an dena valinkdn Seitn koane Endarunga vorgnumma worn.',
 'recentchangeslinked-summary' => "Des is a Listn vo de letztn Endarunga af Seitn, de wo vo ana bstimmtn Seitn valinkt san (bzw. za ana bstimmtn Kategorie ghean).
 Seitn af [[Special:Watchlist|deina Beobochtungslistn]] san '''fett'''.",
 'recentchangeslinked-page' => 'Seiten:',
@@ -895,7 +896,7 @@ Seitn af [[Special:Watchlist|deina Beobochtungslistn]] san '''fett'''.",
 'linkstoimage-more' => "Es {{PLURAL:$1|valinkt|valinkn}} mea wia {{PLURAL:$1|oa Seitn |$1 Seitn}} auf de Datei.
 De foignde Listn zaagt netta {{PLURAL:$1|in easten Link|de easten $1 Links}} auf de Datei.
 A [[Special:WhatLinksHere/$2|voiständige Listn]] gibt's aa.",
-'nolinkstoimage' => 'Koah Seiten bnutzd dé Daatei.',
+'nolinkstoimage' => 'De Datei wead vo koana Seitn gnutzt.',
 'morelinkstoimage' => '[[Special:WhatLinksHere/$1|Weidare Links]] fia de Datei.',
 'duplicatesoffile' => "{{PLURAL:$1|D'foignde Datei is a Duplikat|De foigndn $1 Datein han Duplikate}} vu dea Datei ([[Special:FileDuplicateSearch/$2|weidare Deteus]]):",
 'sharedupload' => 'De Datei stãmmt aus $1 und deaf bei ãndare Projekte vawendt wean.',
@@ -1001,7 +1002,7 @@ Links as Naumensraim wern do néd afglistt.",
 'booksources-go' => 'Suach',
 
 # Special:Log
-'log' => 'Logbiacher',
+'log' => 'Logbiacha',
 'all-logs-page' => 'Olle effmtlichen Logbiacher',
 'alllogstext' => 'Des is de kombinierte Anzeige vo alle in {{SITENAME}} gführten Logbiacha. Die Ausgabe ko durch de Auswahl vom Logbuchtyp, vom Benutzer oder vom Seitntitel eigschränkt wern.',
 'logempty' => 'Koane passenden Einträg.',
@@ -1014,7 +1015,7 @@ Links as Naumensraim wern do néd afglistt.",
 'prevpage' => 'Vurherige Seiten ($1)',
 'allpagesfrom' => 'Seiten auhzoang ob:',
 'allpagesto' => 'Seiten auhzoang bis:',
-'allarticles' => 'Olle Seiten',
+'allarticles' => 'Olle Seitn',
 'allinnamespace' => 'Olle Seiten (Naumensraum: $1)',
 'allnotinnamespace' => 'Ollte Seiten  (néd im $1 Naumensraum)',
 'allpagesprev' => 'Vurige',
@@ -1038,7 +1039,7 @@ Links as Naumensraim wern do néd afglistt.",
 'linksearch-ns' => 'Nåmensraum:',
 'linksearch-ok' => 'Suacher',
 'linksearch-text' => "Dé Speziaalseiten do daméglicht d' Suach noch Seiten, in dénen bstimmte Weblinks enthoiden san. Dodabei kennern Blootzhoiter wia beispüsweis  <code>*.beispü.at</code> hergnummer wern. Es muass mindastens a Top-Level-Domain, z. Bsp. „*.org“. auhgeem wern. <br />Unterstytzde Protokói: <code>$1</code> (Dé bittscheh bei da Suachauhgob auhgeem.)",
-'linksearch-line' => '$1 is valinkt voh $2',
+'linksearch-line' => '$1 is valinkt vo $2',
 
 # Special:ListUsers
 'listusers-submit' => 'Zoag',
@@ -1086,7 +1087,7 @@ Zuasätzlige Informaziónen ywer dé oahzelnen Rechtt kennan [[{{MediaWiki:Listg
 'usermessage-editor' => 'Systém-Messenger',
 
 # Watchlist
-'watchlist' => 'Beówochtungslisten',
+'watchlist' => 'Beobochtungslistn',
 'mywatchlist' => 'Mei Beobochta',
 'watchlistfor2' => 'Vo $1 $2',
 'nowatchlist' => 'Es gibt koane Eihträg auf deiner Beówochtungslisten.',
@@ -1102,7 +1103,7 @@ Waunnst dé Seiten wieder voh deiner Beówochtungslisten weggerddoah mechst, dru
 'removedwatchtext' => "D' Seiten „[[:$1]]“ is voh deiner [[Special:Watchlist|Beówochtungslisten]] wegdauh worn.",
 'watch' => 'Beobochtn',
 'watchthispage' => "D' Seiten beówochten",
-'unwatch' => 'nimmer beówochten',
+'unwatch' => 'nimma beobochtn',
 'unwatchthispage' => 'Nimmer beówochten',
 'notanarticle' => 'Koah Seiten',
 'notvisiblerev' => 'Versión is gléschd worn',
@@ -1166,10 +1167,10 @@ Ryckmödungen und a weidre Hüf: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'delete-legend' => 'Léschen',
 'historywarning' => "'''Ochtung:''' Dé Seiten, dé du léschen mecherst, hod a Versiónsgschicht mid epper $1 {{PLURAL:$1|Versión|Versiónen}}:",
 'confirmdeletetext' => "Du bist dabei, a Seiten mid olle zuaghering ödern Versiónen z' léschen. Bittscheh bstätig dodazua, daas da d' Kónsequenzen bewusst san und daas du in Ywereihstimmung mid d' [[{{MediaWiki:Policy-url}}|Richtlinien]] haundelst.",
-'actioncomplete' => 'Akzión beéndt',
-'actionfailed' => 'Akzión föögschlong',
+'actioncomplete' => 'Aktion beendt',
+'actionfailed' => 'Akzion fejgschlogn',
 'deletedtext' => '„$1“ is glöscht worn. Im $2 findn Sie a Listn vo de letzten Löschungen.',
-'dellogpage' => 'Lésch-Logbiache',
+'dellogpage' => 'Lesch-Logbuach',
 'deletionlog' => 'Lösch-Logbuach',
 'reverted' => 'Auf a oide Version zruckgesetzt',
 'deletecomment' => 'Grund:',
@@ -1239,13 +1240,13 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 'blanknamespace' => '(Seitn)',
 
 # Contributions
-'contributions' => 'Benutzerbeiträg',
+'contributions' => '{{GENDER:$1|Nutza}}beidreg',
 'contributions-title' => 'Nutzabeidräg vo „$1“',
 'mycontris' => 'Meine Beidreg',
 'contribsub2' => 'Vo $1 ($2)',
 'uctop' => '(aktuell)',
-'month' => 'und Monad',
-'year' => 'bis zum Jor:',
+'month' => 'und Monad:',
+'year' => 'Bis zan Joar:',
 
 'sp-contributions-newbies' => 'Nua Beidräg vo de neichn Nutza ozoagn',
 'sp-contributions-newbies-sub' => 'Fyr Neiling',
@@ -1263,13 +1264,13 @@ Da aktuöje Text voh da gléschden Seiten is netter fyr Administraatorn zuagäng
 'whatlinkshere' => 'Links af de Seitn',
 'whatlinkshere-title' => 'Seiten, dé noch „$1“ valinken',
 'whatlinkshere-page' => 'Seiten:',
-'linkshere' => "D' vóigernden Seiten valinken noch '''„[[:$1]]“''':",
+'linkshere' => "De foigandn Seitn valinka af '''„[[:$1]]“''':",
 'nolinkshere' => "Koa Seitn valinkt af '''„[[:$1]]“'''.",
-'isredirect' => 'Weiderloatungsseiten',
-'istemplate' => 'Vurlongeihbindung',
-'isimage' => 'Daateilink',
-'whatlinkshere-prev' => "{{PLURAL:$1|vorige|d'voring $1}}",
-'whatlinkshere-next' => "{{PLURAL:$1|nexde|d'nexdn $1}}",
+'isredirect' => 'Weidaloatungsseitn',
+'istemplate' => 'Vorlogneinbindung',
+'isimage' => 'Dateilink',
+'whatlinkshere-prev' => '{{PLURAL:$1|vorige|vorign $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|naxde|naxdn $1}}',
 'whatlinkshere-links' => '← Vaweise',
 'whatlinkshere-hideredirs' => 'Weidaleitungen $1',
 'whatlinkshere-hidetrans' => 'Vurlongeihbindung $1',
@@ -1403,7 +1404,7 @@ Bittschee gib außadem druntn in '''neichn''' Nãm vu da Seitn ei und schreib ku
 'export' => 'Seitn exportian',
 
 # Namespace 8 related
-'allmessagesname' => 'Nåm:',
+'allmessagesname' => 'Nama:',
 'allmessagesdefault' => 'Standardtext',
 'allmessagescurrent' => 'Aktuella Text',
 'allmessagestext' => 'Des is a Listen vo de MediaWiki-Systemtextt.
@@ -1412,7 +1413,7 @@ Bsuach bittschee de Saiten [//www.mediawiki.org/wiki/Localisation MediaWiki-Loka
 
 # Thumbnails
 'thumbnail-more' => 'vagressan',
-'thumbnail_error' => 'Feeler beim Erstön vom Vurschaubüd: $1',
+'thumbnail_error' => 'Fehla ban Estejn vom Vorschaubuidl: $1',
 
 # Special:Import
 'importnotext' => 'Laar oder koa Text',
@@ -1433,9 +1434,9 @@ Bsuach bittschee de Saiten [//www.mediawiki.org/wiki/Localisation MediaWiki-Loka
 'tooltip-ca-addsection' => 'Neichn Obschnitt ofanga',
 'tooltip-ca-viewsource' => 'De Seitn is gschitzd. In Quejtext konsda oschaugn.',
 'tooltip-ca-history' => 'Friaare Versiona vo dera Seitn',
-'tooltip-ca-protect' => 'Seiten schytzen',
+'tooltip-ca-protect' => 'Seitn schitzn',
 'tooltip-ca-unprotect' => 'Seitenschutz ändern',
-'tooltip-ca-delete' => 'De Seitn löschen',
+'tooltip-ca-delete' => 'De Seitn leschn',
 'tooltip-ca-undelete' => 'Eihträg wiederherstön, bevur dé Seiten gléscht worn is.',
 'tooltip-ca-move' => 'De Seitn vaschiabm',
 'tooltip-ca-watch' => 'De Seitn zua Beobochtungslistn dazua doa',
@@ -1467,18 +1468,18 @@ Hintagrundinfo za Neiigkeidn',
 'tooltip-ca-nstab-user' => 'Benutzerseiten åzoang',
 'tooltip-ca-nstab-media' => 'Meediendaateiseiten åzoang',
 'tooltip-ca-nstab-special' => 'Des is a Spezialseitn, wosd ned beorbatn konst.',
-'tooltip-ca-nstab-project' => 'Portoiseiten åzoang',
+'tooltip-ca-nstab-project' => 'Projektseitn ozoagn',
 'tooltip-ca-nstab-image' => 'Dateiseiten ozoagn',
 'tooltip-ca-nstab-mediawiki' => 'MediaWiki-Systémtext åzoang',
 'tooltip-ca-nstab-template' => 'Vorlog ozoagn',
 'tooltip-ca-nstab-help' => 'Huifseitn oozoang',
 'tooltip-ca-nstab-category' => 'Kategorieseitn ozoagn',
-'tooltip-minoredit' => 'Dé Änderrung ois a kloane markirn.',
+'tooltip-minoredit' => 'Ois kloane Endarung markian.',
 'tooltip-save' => 'Endarunga speichan',
 'tooltip-preview' => 'A Vurschau voh dé Änderrungen an derer Seiten. Bittscheh vurm Speichern bnutzen!',
 'tooltip-diff' => 'Änderrungen am Text zoang',
 'tooltip-compareselectedversions' => 'Unterschiade zwischen zwoa ausgwöde Versiónen voh derer  Seiten vagleichen.',
-'tooltip-watch' => 'Dé Seiten zua persénlichen Beówochtungslisten dazua doah',
+'tooltip-watch' => 'De Seitn zua Beobochtungslistn gebm',
 'tooltip-recreate' => 'Seitn nei erstelln, obwoi sie glöscht worn is.',
 'tooltip-upload' => 'Start as Aufféloon',
 'tooltip-rollback' => 'Setzt olle Endarunga zruck, de wo vom gleichn Nutza gmocht worn san.',
@@ -1503,7 +1504,7 @@ Hintagrundinfo za Neiigkeidn',
 
 # Media information
 'file-info-size' => '$1 × $2 Pixel, Dateigress: $3, MIME-Typ: $4',
-'file-nohires' => 'Es gibt koah heecherne Auflésung.',
+'file-nohires' => 'Es gibt koa hehare Aflesung.',
 'svg-long-desc' => 'SVG-Datei, Basisgress: $1 × $2 Pixl, Dateigress: $3',
 'show-big-image' => 'Versión in heecherner Auflésung',
 
@@ -1525,8 +1526,8 @@ Irgendwejche foigandn Links in da sejm Zein definian Ausnahma, z. B. Seitn wo de
 'metadata-help' => 'Dé Daatei enthoit weiderne Informaziónen, dé in da Reegel voh da Digitoikammera óder am vawenderden Scanner ståmmern. Durch a noochträgliche Beorweidung voh da Originoidaatei kennern oanige Deteils vaänderd worn seih.',
 'metadata-expand' => 'Erweitate Deteus eiblendn',
 'metadata-collapse' => "D' erweiterden Details eihblenden",
-'metadata-fields' => "D' fóigernden Föder voh dé EXIF-Metadaaten, dé in dém MediaWiki-Systémtext ågeem san, wern auf Büdelbschreiwungsseiten mid eihkloppter Metadaatentabön åzoagt.
-Weiderne wern standardmässig néd åzoagt.
+'metadata-fields' => 'De foigandn Fejda vo de EXIF-Metadaten, wo im MediaWiki-Systemtext ogebm san, wean auf Buidbschriebseitn mid eikloppta Metadatentabejn ozoagt.
+Weidane wean standardmassi ned ozoagt.
 * make
 * model
 * datetimeoriginal
@@ -1539,7 +1540,7 @@ Weiderne wern standardmässig néd åzoagt.
 * imagedescription
 * gpslatitude
 * gpslongitude
-* gpsaltitude",
+* gpsaltitude',
 
 # EXIF tags
 'exif-gpsspeed' => 'Gschwindigkeid vom GPS-Empfänger',
@@ -1547,8 +1548,8 @@ Weiderne wern standardmässig néd åzoagt.
 'exif-componentsconfiguration-0' => 'Gibts néd',
 
 # External editor support
-'edit-externally' => 'Dé Daatei mid am externen Prógramm beorweiden',
-'edit-externally-help' => '(Schaug unter [//www.mediawiki.org/wiki/Manual:External_editors Installaziónsåweisungen] fyr weiderne Informaziónen)',
+'edit-externally' => 'De Datei mid am externa Programm beorbatn',
+'edit-externally-help' => '(Schaug unter [//www.mediawiki.org/wiki/Manual:External_editors Installationsoweisunga] fia weidane Infos)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'olle',
index 07712fd..13ca96f 100644 (file)
@@ -2025,9 +2025,9 @@ Asin man hilnga an [[Special:WantedCategories|kinakaipong mga kategorya]].',
 'linksearch-pat' => 'Pangarugan sa paghahanap:',
 'linksearch-ns' => 'Espasyong-ngaran:',
 'linksearch-ok' => 'Hanápon',
-'linksearch-text' => 'Mga pantsambang baraha arog baka kan "*.wikipedia.org" mapuwedeng gamiton.
-Minakaipo kisera sarong halangkaw na mugtak nin kinasakupan, halimbawa "*.org".<br />
-Suportadong mga panundan: <code>$1</code> (dae magdagdag arinman kaini sa saimong paghahanap).',
+'linksearch-text' => 'Mga tsambang baraha arog baka kan "*.wikipedia.org" puwedeng paggamiton.
+Minakaipo kisera halangkaw na kamugtakan nin kinasakupan, halimbawa "*.org".<br />
+Suportadong mga panundan: <code>$1</code> (defaults to http:// kun mayo nin panundan na pinagkaag).',
 'linksearch-line' => '$1 an nakatakod sa $2',
 'linksearch-error' => 'Mga pantsambang baraha mapuwedeng magluwas sana sa poon kan hostname.',
 
@@ -2374,7 +2374,7 @@ $1",
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => 'Mga kontribusyon kan parágamit',
+'contributions' => '{{GENDER:$1|Paragamit}} na mga kaambagan',
 'contributions-title' => 'Mga kontribusyon kan paragamit para sa $1',
 'mycontris' => 'Mga Kaarambagan',
 'contribsub2' => 'Para sa $1 ($2)',
@@ -2528,7 +2528,7 @@ Hilngon sa [[Special:BlockList|listahan nin kubkob]] para sa listahan kan presen
 'ipb_hide_invalid' => 'Dae nakayanan na untukon ining panindog; ini gayod nagkaigwa nin kadakulon na mga pagliliwat.',
 'ipb_already_blocked' => 'An "$1" pinagkubkob na',
 'ipb-needreblock' => 'An $1 pinagkubkob na. Gusto mong liwaton an mga panuytoy?',
-'ipb-otherblocks-header' => 'An ibang {{PLURAL:$1|kubkob|mga kubkob',
+'ipb-otherblocks-header' => 'An ibang {{PLURAL:$1|kubkob|mga kubkob}}',
 'unblock-hideuser' => 'Ika dae makakakubkog kaining paragamit, siring na an saindang paragamit na ngaran itinatago.',
 'ipb_cant_unblock' => 'Error: Dai nahanap an ID nin binagat na $1. Puede ser na dati nang binawi an pagbagat kaini.',
 'ipb_blocked_as_range' => 'Kasalaan: An IP na estada $1 dae direktang pinagkubkob asin dae puwedeng dae makukubkob.
@@ -2544,10 +2544,15 @@ Ini, baya, pinagkubkob bilang parte kan hidwas $2, na mapuwedeng daemakukubkob.'
 'sorbs_create_account_reason' => 'An saimong IP na estada pinaglista bilang sarong bukas na proksi sa laog kan DNSBL na ginagamit kan {{SITENAME}}.
 Ika dae makakamukna nin sarong panindog.',
 'cant-block-while-blocked' => 'Ika dae makakakubkob kan ibang mga paragamit mantang ika nakukubkob pa.',
+'cant-see-hidden-user' => 'An paragamit na pinagpubaran mong kubkubon pinagkubkob asin pinagtago na. Mala ta ika mayo nin karapatan na magtago nin paragamit, ika dae makakahiling or makakaliwat kan kinubkob na paragamit.',
+'ipbblocked' => 'Ika da makakakubkob or maghale nin kubkob sa ibang mga paragamit, nin huli ta ika mismo sa sadiri mo pinagkubkob na',
+'ipbnounblockself' => 'Ika dae pinagtutugutan na magkubkob kan sadiri mo',
 
 # Developer tools
 'lockdb' => 'Ikandado an base nin datos',
 'unlockdb' => 'Ibukás an base nin datos',
+'lockdbtext' => 'An pagkakandado kan datos-sarayan mag-uuntok sa abilidad kan gabos na mga paragamit na pagliwat nin mga pahina, pagsasangli kan saindang mga kamuyahan, pagliliwat kan saindang mga bantay-listahan, asin iba pang mga bagay na nagkakaipo nin mga pagsasangli sa laog kan datos-sarayan. Pakikumpirma lang tabi kun iyo ini an boot mong gibohon, asin na saimong bukasan an datos-saray kun an saimong pagpapakarhay tapos na.',
+'unlockdbtext' => 'An pagbubukas kan datos-sarayan magbabalik-liwat kan abilidad nin gabos na mga paragamit na makapagliwat nin mga pahina, pagsasangli kan saindang mga kamuyahan, pagliliwat kan saindang mga bantay-listahan, asin iba pang mga bagay na nagkakaipo nin mga pagsasangli sa laog kan datos-sarayan. Pakikumpirma lang tabi kun iyo ini an boot mong gibohon.',
 'lockconfirm' => 'Iyo, boot kong ikandado an base kan datos.',
 'unlockconfirm' => 'Iyo, boot kong bukasan an base kan datos.',
 'lockbtn' => 'Isará an base nin datos',
@@ -2560,19 +2565,22 @@ Ika dae makakamukna nin sarong panindog.',
 'unlockdbsuccesstext' => 'Pigbukasan na an base nin datos.',
 'lockfilenotwritable' => "An ''file'' na kandado kan base nin datos dai nasusuratan. Para makandado o mabukasan an bse nin datos, kaipuhan na nasusuratan ini kan web server.",
 'databasenotlocked' => 'Dai nakakandado an base nin datos.',
+'lockedbyandtime' => '(sa paagi ni {{GENDER:$1|$1}} kan $2 sa ika-$3)',
 
 # Move page
+'move-page' => 'Ibalyo an $1',
 'move-page-legend' => 'Ibalyó an páhina',
-'movepagetext' => "Matatàwan nin bàgong pangaran an sarong pahina na pigbabalyo an gabos na uusipón kaini gamit an pormularyo sa babâ.
-An dating titulo magigin redirektang pahina sa bàgong titulo.
-Dai babàgohon an mga takod sa dating titulo kan pahina;
-seguradohon tabì na mayong doble o raot na mga redirekta.
-Ika an responsable sa pagpaseguro na an mga takod nakatokdô kun sain dapat.
+'movepagetext' => "Sa paggagamit kan porma na yaon sa ibaba mariribayan nin pangaran an sarong pahina, maibabalyo an gabos kaining historiya pasiring baguhon na pangaran.
+An lumang titulo magigin sarong panlikwat na pahina pasiring sa baguhong titulo.
+Ika makakapagsumpay kan mga panlikwat na magtutukdo awtomatiko pasiring sa orihinal na titulo.
+Kun saimong pinili na dae, seguraduhon na ma-tsek kun [[Special:DoubleRedirects|doble]] o [[Special:BrokenRedirects|parasa an mga panlikwat]].
+Ika an responsable para himoong segurado na an mga kilyaw padagos na minatukdo kun saen sinda dapat na magduman.
 
-Giromdomon tabì na an pahina '''dai''' ibabalyó kun igwa nang pahina sa bàgong titulo, apwera kun mayò ining laog o sarong redirekta asin uusipón nin mga dating pagliwat. An boot sabihon kaini, pwede mong ibalik an dating pangaran kan pahina kun sain ini pigribayan nin pangaran kun napasalà ka, asin dai mo man sosoknongan an presenteng pahina.
+Giromdoma na an pahina '''dae''' maibabalyo kun igwa na nin sarong pahina sa baguhon na titulo, laen lang kun ini daeng laman o sarong panlikwat asin mayo nin nakaaging historiya nin pagliwat.
+Ini minapasabot na ika makakapagliwat nin pangaran nin sarong pahina pabalik sa kun saen ini pinagliwatan nin pangaran kun ika nakahimo nin kasalaan, asin ika dae makakasalambaw nin sarong eksistido nang pahina.
 
-'''PATANID!'''
-Pwede na dakulà asin dai seguradong pagbàgo ini kan sarong popular na pahina; seguradohon tabì na aram mo an konsekwensya kaini bago magdagos.",
+'''Patanid!'''
+Ini magigin sarong biglaan asin dae inaasahan na kaliwatan para sa sarong bantugan na pahina; pakiseguro sana na saimong nasabutan an mga konsekuwensiya kaini bago ipagpadagos.",
 'movepagetalktext' => "An kapadis na olay na páhina enseguidang ibabalyo kasabay kaini '''kun:'''
 *Igwa nang may laog na olay na páhina na may parehong pangaran, o
 *Halîon mo an marka sa kahon sa babâ.
@@ -2796,8 +2804,20 @@ Ini hurot na pinagkausa nin sarong sugpunan pasiring sa sarong pinagbawal na pan
 'pageinfo-header-properties' => 'Pampahinang propriyedades',
 'pageinfo-views' => 'Numero kan mga patanaw',
 'pageinfo-watchers' => 'Numero kan mga parabantay',
-'pageinfo-edits' => 'Numero kan mga pagliliwat',
-'pageinfo-authors' => 'Numero kan bantog na mga awtor',
+'pageinfo-firstuser' => 'Paramukna nin pahina',
+'pageinfo-firsttime' => 'Petsa kan pagmukna nin pahina',
+'pageinfo-lastuser' => 'Pinakahuring paraliwat',
+'pageinfo-lasttime' => 'Petsa kan pinakahuring pagliwat',
+'pageinfo-edits' => 'Kabilogan na bilang kan mga pagliwat',
+'pageinfo-authors' => 'Kabilogan na bilang kan pinagpalaen na mga awtor',
+'pageinfo-recent-edits' => 'Bilang kan dae pa sana nahahaloy na mga pagliliwat (sa laog kan nakaaging $1)',
+'pageinfo-recent-authors' => 'Bilang kan dae pa sana nahahaloy na pinagpalaen na mga awtor',
+'pageinfo-magic-words' => 'Mahiko {{PLURAL:$1|taramon|mga taramon}} ($1)',
+'pageinfo-hidden-categories' => 'Itinago na {{PLURAL:$1|kategorya|mga kategorya}} ($1)',
+'pageinfo-toolboxlink' => 'Pahina kan impormasyon',
+'pageinfo-redirectsto' => 'Mga panlikwat paduman sa',
+'pageinfo-redirectsto-info' => 'impo',
+'pageinfo-contentpage' => 'Pinagbilang siring sa sarong pahina nin laog',
 
 # Skin names
 'skinname-standard' => 'Klasiko',
index 6ddb321..5a9b652 100644 (file)
@@ -2526,7 +2526,7 @@ $1',
 'blanknamespace' => '(Асноўная)',
 
 # Contributions
-'contributions' => 'Унёсак',
+'contributions' => 'Унёсак {{GENDER:$1|удзельніка|удзельніцы}}',
 'contributions-title' => 'Унёсак {{GENDER:$1|удзельніка|удзельніцы}} $1',
 'mycontris' => 'Унёсак',
 'contribsub2' => 'Для $1 ($2)',
index 0697677..5947300 100644 (file)
@@ -2424,7 +2424,7 @@ $1",
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => "Contribucions de l'usuari",
+'contributions' => "{{GENDER:$1|Contribucions de l'usuari}}",
 'contributions-title' => "Contribucions de l'usuari $1",
 'mycontris' => 'Contribucions',
 'contribsub2' => 'Per $1 ($2)',
@@ -2939,7 +2939,7 @@ Això deu ser degut per un enllaç a un lloc extern inclòs a la llista negra.',
 'pageinfo-title' => 'Informació de «$1»',
 'pageinfo-not-current' => 'Només es pot visualitzar la informació de la revisió actual.',
 'pageinfo-header-basic' => 'Informació bàsica',
-'pageinfo-header-edits' => "Historial d'edicions",
+'pageinfo-header-edits' => 'Historial d’edicions',
 'pageinfo-header-restrictions' => 'Protecció de pàgina',
 'pageinfo-header-properties' => 'Propietats de la pàgina',
 'pageinfo-display-title' => 'Títol mostrat',
index 73cec31..b9a5d0e 100644 (file)
@@ -2603,7 +2603,7 @@ $1',
 'blanknamespace' => '(Hlavní)',
 
 # Contributions
-'contributions' => 'Příspěvky uživatele',
+'contributions' => 'Příspěvky {{GENDER:$1|uživatele|uživatelky}}',
 'contributions-title' => 'Příspěvky uživatele $1',
 'mycontris' => 'Příspěvky',
 'contribsub2' => '$1 ($2)',
index b8bf376..3505c5a 100644 (file)
@@ -2652,7 +2652,7 @@ $1',
 'blanknamespace' => '(Seiten)',
 
 # Contributions
-'contributions' => 'Benutzerbeiträge',
+'contributions' => '{{GENDER:$1|Benutzerbeiträge}}',
 'contributions-title' => 'Benutzerbeiträge von „$1“',
 'mycontris' => 'Beiträge',
 'contribsub2' => 'Von $1 ($2)',
index 187c5f2..e3e8b13 100644 (file)
@@ -2581,7 +2581,7 @@ $1',
 'blanknamespace' => '(Ser)',
 
 # Contributions
-'contributions' => 'İştiraqê karberi',
+'contributions' => 'İştiraqê {{GENDER:$1|Karber}}i',
 'contributions-title' => 'Dekerdenê karber de $1',
 'mycontris' => 'İştıraqi',
 'contribsub2' => 'Qandê $1 ($2)',
index c91965c..9fbd75d 100644 (file)
@@ -2630,7 +2630,7 @@ $1',
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => 'Contribuciones {{GENDER:{{BASEPAGENAME}}|del usuario|de la usuaria}}',
+'contributions' => 'Contribuciones {{GENDER:$1|del usuario|de la usuaria}}',
 'contributions-title' => 'Contribuciones {{GENDER:$1|del usuario|de la usuaria}} $1',
 'mycontris' => 'Contribuciones',
 'contribsub2' => '$1 ($2)',
index 4190e8c..958e2c3 100644 (file)
@@ -316,7 +316,7 @@ $messages = array(
 'viewdeleted_short' => 'Ikusi ezabatutako {{PLURAL:$1|bidalketa bat|$1 bidalketa}}',
 'protect' => 'Babestu',
 'protect_change' => 'aldatu',
-'protectthispage' => 'Orrialde hau babestu',
+'protectthispage' => 'Orri hau babestu',
 'unprotect' => 'Babesa aldatu',
 'unprotectthispage' => 'Orrialde honen babesa aldatu',
 'newpage' => 'Orrialde berria',
@@ -495,13 +495,13 @@ Kontsulta: $2',
 'actionthrottledtext' => 'Spamaren aurkako neurri gisa ekintza hau denbora tarte laburrean aldi askotan egiteko mugapena duzu, eta muga hori zeharkatu duzu.
 Saia zaitez berriro minutu batzuen buruan, mesedez.',
 'protectedpagetext' => 'Orrialde hau aldaketak saihesteko blokeatu egin da.',
-'viewsourcetext' => 'Orrialde honen testua ikusi eta kopiatu dezakezu:',
+'viewsourcetext' => 'Orri honen iturburu-testua ikusi eta kopiatu dezakezu:',
 'viewyourtext' => "Orrialde honetara '''zure aldaketen''' jatorria ikus eta kopiatu ahal duzu:",
 'protectedinterface' => 'Orrialde honek softwarearentzako interfaze testua gordetzen du eta blokeatuta dago bandalismoak saihesteko.
 Wiki guztientzako aldaketak egin edo gehitzeko, mesedez erabili [//translatewiki.net/ translatewiki.net], MediaWikiren lokalizazio proiektua.',
-'editinginterface' => "'''Oharra:''' Softwarearentzako interfaze testua duen orrialde bat aldatzen ari zara.
-Orrialde honetako aldaketek wiki honetako erabiltzaile guztiei eragingo die.
-Itzulpenetarako, [//translatewiki.net/ translatewiki.net] erabili ezazu, MediaWiki proiektuan.",
+'editinginterface' => "'''Oharra:''' Softwarearen interfazerako testua duen orri bat aldatzen ari zara.
+Orri honetako aldaketek wiki honetako erabiltzaile guztiei eragingo diete.
+Itzulpenetarako, erabil ezazu [//translatewiki.net/ translatewiki.net], MediaWiki proiektuan.",
 'sqlhidden' => '(ezkutuko SQL kontsulta)',
 'cascadeprotected' => "Orrialde hau aldaketen aurka babestua dago, ''kaskada'' aukerarekin babestu {{PLURAL:$1|duten orrialde honetan|dituzten orrialde hauetan}} txertaturik dagoelako:
 $2",
@@ -817,16 +817,16 @@ Azken erregistroko sarrera ematen da azpian erreferentzia gisa:",
 'edittools' => '<!-- Hemen jarritako testua aldaketa eta igoera formularioen azpian agertuko da. -->',
 'nocreatetitle' => 'Orrialdeak sortzea mugatuta',
 'nocreatetext' => 'Gune honek orrialde berriak sortzeko gaitasuna mugatu du. Atzera egin dezakezu existitzen den orrialde bat aldatzeko, edo [[Special:UserLogin|saio hasi edo kontua sortu]].',
-'nocreate-loggedin' => 'Ez daukazu orrialde berriak sortzeko baimenik.',
+'nocreate-loggedin' => 'Ez duzu orri berriak sortzeko baimenik.',
 'sectioneditnotsupported-title' => 'Ezin dira atalak aldatu',
 'sectioneditnotsupported-text' => 'Ezin dira atalak aldatu orrialde honetan.',
 'permissionserrors' => 'Baimen erroreak',
 'permissionserrorstext' => 'Ez duzu hori egiteko baimenik, hurrengo {{PLURAL:$1|arrazoia dela eta|arrazoiak direla eta}}:',
 'permissionserrorstext-withaction' => 'Ez duzu $2 egiteko eskumenik, honako {{PLURAL:$1|arrazoia dela eta:|arrazoiak direla eta:}}',
-'recreate-moveddeleted-warn' => "'''Oharra: Lehenago ezabatutako orrialdea birsortzen ari zara.'''
+'recreate-moveddeleted-warn' => "'''Oharra: Lehenago ezabatutako orri bat berriz sortzen ari zara.'''
 
-Pentsatu ea orrialde hau editatzen jarraitzeak zentzurik baduen.
-Hemen duzu orrialde honen ezabaketa erregistroa badaezpada ere:",
+Pentsatu ea orri hau editatzen jarraitzeak zentzurik baduen.
+Hemen duzu orri honen ezabaketa erregistroa, badaezpada ere:",
 'moveddeleted-notice' => 'Orrialde hau ezabatua izan da.
 Orrialdearen ezabatze erregistroa behean agertzen da erreferentzia gisa.',
 'log-fulllog' => 'Erregistro osoa ikusi',
@@ -1413,9 +1413,9 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'rc-enhanced-hide' => 'Xehetasunak ezkutatu',
 
 # Recent changes linked
-'recentchangeslinked' => 'Lotutako orrialdeen aldaketak',
-'recentchangeslinked-feed' => 'Lotutako orrialdeen aldaketak',
-'recentchangeslinked-toolbox' => 'Lotutako orrialdeen aldaketak',
+'recentchangeslinked' => 'Lotutako orrietako aldaketak',
+'recentchangeslinked-feed' => 'Lotutako orrietako aldaketak',
+'recentchangeslinked-toolbox' => 'Lotutako orrietako aldaketak',
 'recentchangeslinked-title' => '"$1"(e)kin harremanetan dauden aldaketak',
 'recentchangeslinked-noresult' => 'Emandako epean ez da egon aldaketarik loturiko orrialdetan.',
 'recentchangeslinked-summary' => "Zerrenda honetan zehazturiko orrialde bati (edo kategoria berezi bateko azkeneko kideei) lotura duten orrietan eginiko azken aldaketak agertzen dira.
@@ -1807,7 +1807,7 @@ Erregistro mota, erabiltzailearen izena edota orrialdearen izena iragaziz bistar
 'log-title-wildcard' => 'Testu honekin hasten diren izenburuak bilatu',
 
 # Special:AllPages
-'allpages' => 'Orrialde guztiak',
+'allpages' => 'Orri guztiak',
 'alphaindexline' => '$1(e)tik $2(e)raino',
 'nextpage' => 'Hurrengo orrialdea ($1)',
 'prevpage' => 'Aurreko orrialdea ($1)',
@@ -2190,7 +2190,7 @@ Blokeo erregistroa azken sarrera ematen da azpian erreferentziarako:',
 'sp-contributions-submit' => 'Bilatu',
 
 # What links here
-'whatlinkshere' => 'Orri honetaranzko lotura dutenak',
+'whatlinkshere' => 'Honanzko lotura duten orriak',
 'whatlinkshere-title' => '$1(e)ra lotura duten orriak',
 'whatlinkshere-page' => 'Orrialdea:',
 'linkshere' => "Hauek dute '''[[:$1]]''' orrialderako lotura:",
@@ -2540,7 +2540,7 @@ Fitxategiaren atal bat baino ez zen igo.',
 'tooltip-n-randompage' => 'Ausazko orrialde bat kargatu',
 'tooltip-n-help' => 'Aurkitzeko lekua.',
 'tooltip-t-whatlinkshere' => 'Orri honetara lotura duten wiki orri guztien zerrenda',
-'tooltip-t-recentchangeslinked' => 'Orrialde honetatik lotutako orrialdeen azken aldaketak',
+'tooltip-t-recentchangeslinked' => 'Orri honetatik lotura duten orrietako azken aldaketak',
 'tooltip-feed-rss' => 'Orrialde honen RSS jarioa',
 'tooltip-feed-atom' => 'Orrialde honen atom jarioa',
 'tooltip-t-contributions' => 'Lankide honen ekarpen zerrenda ikusi',
@@ -2605,12 +2605,39 @@ Baliteke zerrenda beltzean dagoen kanpo lotura batek sortzea arazo hori.',
 'spam_blanking' => 'Berrikuspen guztiek $1(e)rako lotura zeukaten, husten',
 
 # Info page
+'pageinfo-header-basic' => 'Oinarrizko informazioa',
 'pageinfo-header-edits' => 'Aldaketen historia',
+'pageinfo-header-restrictions' => 'Orriaren babesa',
+'pageinfo-header-properties' => 'Orriaren propietateak',
+'pageinfo-display-title' => 'Ageri den izenburua',
+'pageinfo-default-sort' => 'Ordenatze irizpide lehenetsia',
+'pageinfo-length' => 'Orriaren neurria (byteak)',
+'pageinfo-article-id' => 'Orriaren identifikazio zenbakia',
+'pageinfo-language' => 'Orriaren edukiaren hizkuntza',
+'pageinfo-robot-policy' => 'Bilaketa motorraren egoera',
+'pageinfo-robot-index' => 'Indexagarria',
+'pageinfo-robot-noindex' => 'Indexaezina',
 'pageinfo-views' => 'Bistaratze-kopurua',
-'pageinfo-edits' => 'Aldaketa kopuru totala',
-'pageinfo-redirectsto-info' => 'Info',
+'pageinfo-watchers' => 'Orriaren jarraitzaileen kopurua',
+'pageinfo-redirects-name' => 'Orri honetara dakarten birzuzenketak',
+'pageinfo-subpages-name' => 'Orri honen azpiorriak',
+'pageinfo-firstuser' => 'Orriaren sortzailea',
+'pageinfo-firsttime' => 'Orriaren sortze data',
+'pageinfo-lastuser' => 'Azken editorea',
+'pageinfo-lasttime' => 'Azken edizioaren data',
+'pageinfo-edits' => 'Edizio kopurua, guztira',
+'pageinfo-authors' => 'Egile kopurua, guztira',
+'pageinfo-recent-edits' => 'Oraintsuko edizioen kopurua (azken $1)',
+'pageinfo-recent-authors' => 'Oraintsuko egileen kopurua',
+'pageinfo-hidden-categories' => 'Ezkutuko {{PLURAL:$1|kategoria|kategoriak}} ($1)',
+'pageinfo-templates' => 'Txertatutako {{PLURAL:$1|txantiloia|txantiloiak}} ($1)',
+'pageinfo-toolboxlink' => 'Orri honen datuak',
+'pageinfo-redirectsto-info' => 'Informazioa',
+'pageinfo-contentpage' => 'Eduki-orritzat zenbatua',
 'pageinfo-contentpage-yes' => 'Bai',
+'pageinfo-protect-cascading' => 'Serieko babesa, orri honetatik',
 'pageinfo-protect-cascading-yes' => 'Bai',
+'pageinfo-protect-cascading-from' => 'Serieko babesak aktibatuta. Sorburua:',
 
 # Skin names
 'skinname-standard' => 'Lehenetsia',
@@ -3132,7 +3159,7 @@ Egiaztapen kode hau $4 iraungiko da.',
 'autosumm-blank' => 'Orritik eduki guztia ezabatuta',
 'autosumm-replace' => 'Orriaren edukiaren ordez, «$1» jarri da',
 'autoredircomment' => '[[$1]] orrialdera birzuzentzentzen',
-'autosumm-new' => 'Orrialde berria $1-(e)kin sortua',
+'autosumm-new' => 'Orria sortu da. Edukia: $1',
 
 # Live preview
 'livepreview-loading' => 'Kargatzen…',
@@ -3219,12 +3246,12 @@ Irudiak bereizmen handienean daude, bestelako fitxategi motak beraiei esleitutak
 'fileduplicatesearch-result-n' => '"$1" fitxategiak {{PLURAL:$2|kopia zehatz bakarra du|$2 kopia zehatz ditu}}.',
 
 # Special:SpecialPages
-'specialpages' => 'Orrialde bereziak',
+'specialpages' => 'Orri bereziak',
 'specialpages-note' => '----
-* Orrialde berezi arruntak.
-* <strong class="mw-specialpagerestricted">Mugatutako orrialde bereziak.</strong>',
+* Orri berezi arruntak.
+* <strong class="mw-specialpagerestricted">Mugatutako orri bereziak.</strong>',
 'specialpages-group-maintenance' => 'Mantentze-oharrak',
-'specialpages-group-other' => 'Beste orrialde berezi batzuk',
+'specialpages-group-other' => 'Beste orri berezi batzuk',
 'specialpages-group-login' => 'Saioa hasi / kontua sortu',
 'specialpages-group-changes' => 'Aldaketa berriak eta erregistroak',
 'specialpages-group-media' => 'Artxiboen orriak',
index f72b80d..fc034ea 100644 (file)
@@ -671,7 +671,7 @@ Joku muu on saattanut poistaa sen.',
 'delete-hook-aborted' => 'Laajennuskoohdi esti muokkauksen antamatta syytä.',
 'badtitle' => 'Virheellinen otsikko',
 'badtitletext' => 'Pyytämäsi sivuotsikko oli virheellinen, tyhjä tai väärin linkitetty kieltenvälinen tai wikienvälinen linkki.',
-'perfcached' => 'Tiedot ovat välimuistista eivätkä välttämättä ole ajan tasalla. Välimuistissa on saatavilla enintään {{PLURAL:$1|yksi tulos|$1 tulosta}}.',
+'perfcached' => 'Nämä tiedot ovat välimuistista eivätkä välttämättä ole ajan tasalla. Välimuistissa on saatavilla enintään {{PLURAL:$1|yksi tulos|$1 tulosta}}.',
 'perfcachedts' => 'Nämä tiedot ovat välimuistista, ja ne on päivitetty viimeksi $1. Välimuistissa on saatavilla enintään {{PLURAL:$4|yksi tulos|$4 tulosta}}.',
 'querypage-no-updates' => 'Tämän sivun tietoja ei toistaiseksi päivitetä.',
 'wrong_wfQuery_params' => 'Virheelliset parametrit wfQuery()<br />Funktio: $1<br />Tiedustelu: $2',
@@ -2509,7 +2509,7 @@ $1',
 'blanknamespace' => '(sivut)',
 
 # Contributions
-'contributions' => 'Käyttäjän muokkaukset',
+'contributions' => '{{GENDER:$1|Käyttäjän}} muokkaukset',
 'contributions-title' => 'Käyttäjän $1 muokkaukset',
 'mycontris' => 'Omat muokkaukset',
 'contribsub2' => 'Käyttäjän $1 ($2) muokkaukset',
@@ -3147,6 +3147,7 @@ Suorittamalla sen järjestelmäsi voi muuttua epäluotettavaksi.",
 'hours' => '{{PLURAL:$1|$1 tunti|$1 tuntia}}',
 'days' => '{{PLURAL:$1|$1 päivä|$1 päivää}}',
 'ago' => '$1 sitten',
+'just-now' => 'juuri nyt',
 
 # Bad image list
 'bad_image_list' => 'Listan muoto on seuraava:
index 465e07a..0dc5eab 100644 (file)
@@ -2639,7 +2639,7 @@ $1',
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => "Contributions de l'utilisateur",
+'contributions' => "Contributions de l'{{GENDER:$1|utilisateur|utilisatrice}}",
 'contributions-title' => "Liste des contributions de l'utilisateur $1",
 'mycontris' => 'Contributions',
 'contribsub2' => 'Pour $1 ($2)',
index 7c7a698..288066f 100644 (file)
@@ -83,7 +83,7 @@ $messages = array(
 
 'underline-always' => 'An-còmhnaidh',
 'underline-never' => 'Na dèan seo idir',
-'underline-default' => "Roghainn bhunaiteach a' bhrabhsair",
+'underline-default' => "Bun-roghainn a' bhrabhsair no a' chraicinn",
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Stoidhle cruth-clò an raoin dheasachaidh:',
@@ -168,8 +168,8 @@ $messages = array(
 'newwindow' => "(a' fosgladh ann an uinneag ùr)",
 'cancel' => 'Sguir dheth',
 'moredotdotdot' => 'Barrachd...',
-'mypage' => 'Mo dhuilleag',
-'mytalk' => 'Mo chonaltradh',
+'mypage' => 'Duilleag',
+'mytalk' => 'Deasbaireachd',
 'anontalk' => 'Conaltradh airson an IP seo',
 'navigation' => 'Seòladh',
 'and' => '&#32;agus',
@@ -191,7 +191,7 @@ $messages = array(
 'vector-action-protect' => 'Dìon',
 'vector-action-undelete' => 'Neo-dhèan an sguabadh às',
 'vector-action-unprotect' => 'Atharraich an dìon',
-'vector-simplesearch-preference' => 'Cuir an comas molaidhean luirg adhartach (craiceann vector a-mhàin)',
+'vector-simplesearch-preference' => 'Cuir an comas am bàr-luirg simplidh (craiceann vector a-mhàin)',
 'vector-view-create' => 'Cruthaich',
 'vector-view-edit' => 'Deasaich',
 'vector-view-history' => 'Seall an eachdraidh',
@@ -298,6 +298,10 @@ Seall air [[Special:Version|duilleag an tionndaidh]].',
 'youhavenewmessages' => 'Tha $1 ($2) agad.',
 'newmessageslink' => 'teachdaireachdan ùra',
 'newmessagesdifflink' => 'mùthadh mu dheireadh',
+'youhavenewmessagesfromusers' => 'Tha $1 o {{PLURAL:$3|aon chleachdaiche|$3 chleachdaiche|$3 chleachdaiche|$3 chleachdaiche|$3 cleachdaichean|$3 cleachdaiche}} agad ($2).',
+'youhavenewmessagesmanyusers' => 'Tha $1 agad o iomadh cleachdaiche ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|aon teachdaireachd ùr|$1 theachdaireachd ùr|$1 teachdaireachd ùr|$1 theachdaireachd ùr|$1 teachdaireachdan ùra|$1 teachdaireachd ùr}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|am mùthadh|an $1 mhùthadh|an $1 mhùthadh|an $1 mhùthadh|na $1 mùthaidhean|na $1 mùthadh}} mu dheireadh',
 'youhavenewmessagesmulti' => 'Tha teachdaireachdan ùra agad ann an $1',
 'editsection' => 'deasaich',
 'editold' => 'deasaich',
@@ -391,6 +395,8 @@ An dèan thu aithris air seo do [[Special:ListUsers/sysop|rianadair]], ag innse
 'cannotdelete' => 'Cha do ghabh an duilleag no am faidhle "$1" a sguabadh às.
 Faodaidh gun deach a sguabadh às le cuideigin eile mu thràth.',
 'cannotdelete-title' => 'Cha ghabh an duilleag "$1" a sguabadh às',
+'delete-hook-aborted' => 'Sguireadh dhen sguabadh às ri linn dubhain.
+Cha deach adhbhar a thoirt seachad.',
 'badtitle' => 'Droch thiotal',
 'badtitletext' => "Bha an duilleag a dh'iarr thu mì-dhligheach, falamh no le tiotal eadar-chànanach no eadar-uici air a dhroch cheangal.
 Faodaidh gu bheil aon no barrachd charactairean ann nach urrainn dhut a chleachdadh ann an tiotalan.",
@@ -406,13 +412,13 @@ Iarrtas: $2',
 'actionthrottled' => 'Gnìomh air a mhùchadh',
 'actionthrottledtext' => "Gus casg a chur air spama, chan urrainn dhut an gnìomh seo a dhèanamh ro thric am broinn ùine ghoirid agus chaidh thu thairis air a' chrìoch seo.
 Feuch ris a-rithist às a dhèidh seo.",
-'protectedpagetext' => 'Chaidh an duilleag seo a ghlasadh gus casg a chur air deasachadh.',
+'protectedpagetext' => 'Chaidh an duilleag seo a dhìon gus casg a chur air deasachadh.',
 'viewsourcetext' => "'S urrainn dhut coimhead air tùs na duilleige seo 's lethbhreac a dhèanamh dheth:",
 'viewyourtext' => "'S urrainn dhut coimhead air '''na mhùthaich thu''' 's lethbhreac a dhèanamh dheth air an duilleag seo:",
-'protectedinterface' => "Tha an duilleag seo a' solar teacsa eadar-aghaidh airson a' bhathar-bhog is chaidh a ghlaadh gus casg a chur air mì-chleachdadh.",
+'protectedinterface' => "Bheir an duilleag seo dhut teacsa eadar-aghaidh airson a' bhathar-bhog air an uicipeid seo 's chaidh a ghlasadh gus casg a chur air mì-chleachdadh. Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicipeid, cleachd [//translatewiki.net/ translatewiki.net], pròiseactan eadar-theangachadh MediaWiki.",
 'editinginterface' => "'''Rabhadh:''' Tha thu a' deasachadh duilleag a tha 'ga chleachdadh a chum teacsa eadar-aghaidh a sholar airson a' bhathar-bhog.
-Ma dh'atharraicheas tu an duilleag seo, bidh buaidh ann air coltas na h-eadar-aghaidh mar a chì càch i.
-Ma tha thu airson Gàidhlig a chur air, saoil an cleachd thu [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], am pròiseact ionadailidh aig MediaWiki?",
+Ma dh'atharraicheas tu an duilleag seo, bidh buaidh ann air coltas na h-eadar-aghaidh mar a chì càch e air an uicipeid seo.
+Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicipeid, cleachd [//translatewiki.net/ translatewiki.net], pròiseactan eadar-theangachadh MediaWiki.",
 'sqlhidden' => "(Iarrtas SQL 'ga fhalach)",
 'cascadeprotected' => 'Chaidh an duilleag seo a dhìon o dheasachadh a chionn \'s gu bheil e am broinn {{PLURAL:$1|na duilleige|nan duilleagan}} a leanas a chaidh an dìon \'s an roghainn "mar eas" air:
 $2',
@@ -422,6 +428,12 @@ $2',
 'ns-specialprotected' => 'Chan ghabh duilleagan sònraichte a dheasachadh.',
 'titleprotected' => 'Chaidh an duilleag seo a dhìon o chruthachadh le [[User:$1|$1]].
 Seo am mìneachadh: "\'\'$2\'\'".',
+'filereadonlyerror' => 'Cha ghabh am faidhle "$1" atharrachadh a chionn \'s gu bheil ionad-tasgaidh fhaidhlichean "$2" ri leughadh a-mhàin.
+Thug an rianaire a ghlais e seachad an t-adhbhar a leanas: "$3".',
+'invalidtitle-knownnamespace' => 'Tiotal mì-dhligheach leis an namespace "$2" agus an teacsa "$3"',
+'invalidtitle-unknownnamespace' => 'Tiotal mì-dhligheach leis an àireamh namespace $1 agus an teacsa "$2"',
+'exception-nologin' => 'Chan eil thu air clàradh a-steach',
+'exception-nologin-text' => 'Feumaidh tu clàradh a-steach air an uicipeid seo mus urrainn dhut seo a dhèanamh.',
 
 # Virus scanner
 'virus-badscanner' => "Droch cho-dhealbhachd: sganair bhìorasan neo-aithnichte: ''$1''",
@@ -438,6 +450,7 @@ Thoir an aire gum bi coltas air cuide dhe na duilleagan mar gum biodh tu air log
 'remembermypassword' => "Cuimhnich gu bheil mi air logadh a-steach air a' choimpiutair seo (suas gu $1 {{PLURAL:$1|latha|làithean}})",
 'securelogin-stick-https' => 'Glèidh an ceangal ri HTTPS as dèidh logadh a-steach',
 'yourdomainname' => 'An àrainn-lìn agad:',
+'password-change-forbidden' => 'Chan urrainn dhut faclan-faire atharrachadh air an uicipeid seo.',
 'externaldberror' => 'Thachair mearachd le dearbhadh an stòir-dhàta air neo chan eil cead agad an cunntas agad air an taobh a-muigh ùrachadh.',
 'login' => 'Log a-steach',
 'nav-login-createaccount' => 'Log a-steach / cruthaich cunntas',
@@ -515,6 +528,7 @@ Cha dèid post-d a chur airson gin dhe na feartan a leanas.',
 'invalidemailaddress' => "Chan urrainn dhuinn gabhail ris an t-seòladh seo a chionn 's gu bheil coltas cearr air.
 Cuir a-steach seòladh san fhòrmat cheart no falamhaich an raon sin.",
 'cannotchangeemail' => 'Cha ghabh na puist-d a tha co-cheangailte ri cunntas atharrachadh air an uicipeid seo.',
+'emaildisabled' => 'Chan urrainn dhut puist-d a chur air an làrach seo.',
 'accountcreated' => 'Cunntas cruthaichte',
 'accountcreatedtext' => 'Chaidh an cunntas cleachdaiche airson $1 a chruthachadh.',
 'createaccount-title' => 'Cruthachadh cunntais airson {{SITENAME}}',
@@ -688,9 +702,12 @@ Mas e cleachdaiche gun urra a tha annad 's ma tha thu dhen bheachd nach eil na b
 \'S urrainn dhut [[Special:Search/{{PAGENAME}}|an tiotal seo a lorg]] ann an duilleagan eile,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh],
 no [{{fullurl:{{FULLPAGENAME}}|action=edit}} an duilleag seo a dheasachadh]</span>.',
-'noarticletext-nopermission' => 'Chan eil teacsa sam bith anns an duilleag seo an-dràsta.
-\'S urrainn dhut [[Special:Search/{{PAGENAME}}|an tiotal seo a lorg]] ann an duilleagan eile,
-no <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh]</span>.',
+'noarticletext-nopermission' => 'Chan eil teacsa sam bith san duilleag seo an-dràsta.
+\'S urrainn dhut [[Special:Search/{{PAGENAME}}|tiotal na duilleige seo a lorg]] ann an duilleagan eile, no <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh]</span> ach chan eil cead agad an duilleag seo a chruthachadh.',
+'missing-revision' => 'Chan eil mùthadh #$1 na duilleige "{{PAGENAME}}" ann.
+
+Mar is trice, tachraidh seo ma leanas tu ceangal san eachdraidh a tha fìor aosta \'s a tha a\' dol gu duilleag a chaidh a sguabadh às.
+Gheibh thu mion-fhiosrachadh ann an [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} loga nan duilleagan a chaidh a sguabadh às].',
 'userpage-userdoesnotexist' => 'Chan e cunntas clàraichte a tha ann an "$1".
 Dèan cinnteach gu bheil thu airson an duilleag seo a chruthachadh/dheasachadh.',
 'userpage-userdoesnotexist-view' => 'Cha deach an cunntas cleachdaiche "$1" a chlàradh.',
@@ -717,6 +734,7 @@ Cleachdaidh duilleagan gnàthaichte .css agus .js tiotal ann an litrichean beaga
 'note' => "'''An aire:'''",
 'previewnote' => "'''Cuimhnich nach eil ann ach ro-shealladh.'''
 Cha deach na mùthaidhean agad a shàbhaladh fhathast!",
+'continue-editing' => 'Rach gun raon deasachaidh',
 'previewconflict' => "Tha an ro-shealladh seo a' sealltainn dhut an teacsa san raon teacsa gu h-àrd mar a nochdas e ma shàbhaileas tu an-dràsta.",
 'session_fail_preview' => "'''Duilich! Cha b' urrainn dhuinn na dheasaich thu a làimhseachadh air sgàth call dàta an t-seisein.'''
 Nach fheuch thu ris a-rithist?
@@ -732,6 +750,7 @@ Dhiùlt sinn na dheasaich thu air eagal 's gun coirbeadh e teacsa na duilleige.
 Tachraidh seo uaireannan ma chleachdar seirbheis-lìn progsaidh gun urra a tha làn de mhearachdan.",
 'edit_form_incomplete' => "'''Cha do ràinig cuid dhen fhoirm deasachaidh am frithealaichte; dèan cinnteach gu bheil gach deasachadh agad slàn is feuch ris a-rithist.'''",
 'editing' => "A' deasachadh $1",
+'creating' => "A' cruthachadh $1",
 'editingsection' => "A' deasachadh $1 (earrann)",
 'editingcomment' => "A' deasachadh $1 (earrann ùr)",
 'editconflict' => 'Còmhstri deasachaidh: $1',
@@ -798,6 +817,7 @@ Tha coltas gun deach a sguabadh às.",
 'edit-no-change' => "Chaidh an obair-dheasachaidh agad a leigeil seachad a chionn 's nach do dh'atharraich thu dad.",
 'edit-already-exists' => "Cha b' urrainn dhuinn an duilleag ùr a chruthachadh.
 Tha e ann mu thràth.",
+'defaultmessagetext' => 'Teacsa bunaiteach na teachdaireachd',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''Rabhadh:''' Tha cus expensive parser function calls san duilleag seo.
@@ -811,6 +831,7 @@ Cha dèid cuid dhith a ghabhail a-steach.",
 Chaidh na h-argamaidean sinn a leigeil seachad.",
 'post-expand-template-argument-category' => 'Duilleagan air an deach argamaidean teamplaidean fhàgail às',
 'parser-template-loop-warning' => 'Mhothaicheadh do lùb teamplaid: [[$1]]',
+'parser-unstrip-loop-warning' => 'Mhothaich sinn do lùb unstrip',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Cha ghabh an cunntas a chruthachadh',
@@ -828,12 +849,15 @@ Chaidh na h-argamaidean sinn a leigeil seachad.",
 'cur' => 'làith',
 'next' => 'ath',
 'last' => 'roimhe',
+'page_first' => 'Toiseach',
+'page_last' => 'Deireadh',
 'histlegend' => "Taghadh nan diofar: comharraich bogsaichean rèidio nam mùthaidhean gus coimeas a dhèanamh agus put Enter no am putan gu h-ìosal.<br />
 Mìneachadh: '''({{int:cur}})''' = an diofar eadar e 's am mùthadh as ùire, '''({{int:last}})''' = an diofar eadar e 's am mùthadh roimhe, '''{{int:minoreditletter}}''' = deasachadh beag.",
 'history-fieldset-title' => 'An eachdraidh brabhsaidh',
 'history-show-deleted' => 'Na chaidh sguabadh às a-mhàin',
 'histfirst' => 'As sine',
 'histlast' => 'As ùire',
+'historysize' => '({{PLURAL:$1|1 bhaidt|$1 bhaidht|$1 bhaidht|$1 bhaidht|$1 baidht|$1 baidht}})',
 'historyempty' => '(falamh)',
 
 # Revision feed
@@ -854,6 +878,10 @@ Feuch is [[Special:Search|lorg duilleagan ùra iomachaidh air an uici]]",
 'revdel-restore' => 'mùth follaiseachd',
 'revdel-restore-deleted' => 'mùthaidhean a chaidh a sguabadh às',
 'revdel-restore-visible' => 'mùthaidhean faicsinneach',
+'revdelete-otherreason' => 'Adhbhar eile/a bharrachd:',
+'revdelete-reasonotherlist' => 'Adhbhar eile',
+'revdelete-edit-reasonlist' => 'Deasaich adhbharan an sguabaidh às',
+'revdelete-offender' => "Ùghdar a' mhùthaidh:",
 
 # History merging
 'mergehistory-from' => 'An duilleag thùsail:',
@@ -924,7 +952,7 @@ Feuch ri ''all:'' a chuir air beulaibh an iarrtais agad gus rannsachadh a dhèan
 
 # Preferences page
 'preferences' => 'Roghainnean',
-'mypreferences' => 'Mo roghainnean',
+'mypreferences' => 'Na roghainnean agam',
 'changepassword' => 'Atharraich facal-faire',
 'prefs-skin' => 'Bian',
 'skin-preview' => 'Ro-shealladh',
@@ -1168,7 +1196,7 @@ Thoir sùil air na [[Special:WantedCategories|roinntean-seòrsa a thathar 'gan i
 
 # Watchlist
 'watchlist' => 'Mo chlàr-faire',
-'mywatchlist' => 'Mo chlàr-faire',
+'mywatchlist' => 'An clàr-faire',
 'watchlistfor2' => 'Do $1 $2',
 'nowatchlist' => "Chan eil rud sam bith air a' chlàr-fhaire agad.",
 'addedwatchtext' => "Chaidh an duilleag \"[[:\$1]]\" a chur ri [[Special:Watchlist|do chlàr-faire]].
@@ -1260,9 +1288,9 @@ Seo roghainnean làithreach na duilleige '''$1''':",
 'blanknamespace' => '(Prìomh)',
 
 # Contributions
-'contributions' => 'Mùthaidhean an neach-chleachdaidh',
+'contributions' => "Mùthaidhean a' {{GENDER:$1|chleachdaiche}}",
 'contributions-title' => 'Mùthaidhean a rinn $1',
-'mycontris' => 'Mo mhùthaidhean',
+'mycontris' => 'Mùthaidhean',
 'contribsub2' => 'Do $1 ($2)',
 'uctop' => ' (barr)',
 'month' => 'On mhìos (agus na bu tràithe):',
@@ -1293,7 +1321,7 @@ Seo roghainnean làithreach na duilleige '''$1''':",
 'whatlinkshere-hideredirs' => '$1 ath-sheòlaidhean',
 'whatlinkshere-hidetrans' => '$1 transclusions',
 'whatlinkshere-hidelinks' => '$1 ceanglaichean',
-'whatlinkshere-hideimages' => '$1 ceanglaichean nan dealbhan',
+'whatlinkshere-hideimages' => '$1 ceanglaichean nam faidhlichean',
 'whatlinkshere-filters' => 'Criathairean',
 
 # Block/unblock
index 2be3f54..316ce8a 100644 (file)
@@ -2529,7 +2529,7 @@ $1',
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => 'Contribucións {{GENDER:{{BASEPAGENAME}}|do usuario|da usuaria}}',
+'contributions' => 'Contribucións {{GENDER:$1|do usuario|da usuaria}}',
 'contributions-title' => 'Contribucións de $1',
 'mycontris' => 'Contribucións',
 'contribsub2' => 'De $1 ($2)',
index 2c18651..7848a85 100644 (file)
@@ -2641,7 +2641,7 @@ $1',
 'blanknamespace' => '(ראשי)',
 
 # Contributions
-'contributions' => 'תרומות המשתמש',
+'contributions' => 'תרומות {{GENDER:$1|המשתמש|המשתמשת}}',
 'contributions-title' => 'תרומות של המשתמש $1',
 'mycontris' => 'תרומות',
 'contribsub2' => 'עבור $1 ($2)',
index e7fbaec..93e7e09 100644 (file)
@@ -2492,7 +2492,7 @@ $1',
 'blanknamespace' => '(Principale)',
 
 # Contributions
-'contributions' => 'Contributi utente',
+'contributions' => 'Contributi {{GENDER:$1|utente}}',
 'contributions-title' => 'Contributi di $1',
 'mycontris' => 'contributi',
 'contribsub2' => 'Per $1 ($2)',
index 032661a..f31f75f 100644 (file)
@@ -610,8 +610,8 @@ $1',
 'policy-url' => 'Project:方針',
 'portal' => 'コミュニティ・ポータル',
 'portal-url' => 'Project:コミュニティ・ポータル',
-'privacy' => 'プライバシー ポリシー',
-'privacypage' => 'Project:プライバシー ポリシー',
+'privacy' => 'プライバシーポリシー',
+'privacypage' => 'Project:プライバシーポリシー',
 
 'badaccess' => '権限がありません',
 'badaccess-group0' => '要求した操作を行うことは許可されていません。',
index 8a48070..3ba54e4 100644 (file)
@@ -2668,7 +2668,7 @@ $1',
 'blanknamespace' => '(일반)',
 
 # Contributions
-'contributions' => '사용자 기여',
+'contributions' => '{{GENDER:$1|사용자}} 기여',
 'contributions-title' => '$1 사용자의 기여 목록',
 'mycontris' => '기여 목록',
 'contribsub2' => '$1($2)의 기여',
index 011c9b8..301704a 100644 (file)
@@ -1866,6 +1866,10 @@ Ji ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.',
 'pageinfo-views' => 'Hejmara dîtinê',
 'pageinfo-watchers' => 'Hejmara kesên dişopînin',
 'pageinfo-edits' => 'Hejmara guherandinan',
+'pageinfo-toolboxlink' => 'Agahiya rûpelê',
+'pageinfo-redirectsto-info' => 'agahî',
+'pageinfo-contentpage-yes' => 'Erê',
+'pageinfo-protect-cascading-yes' => 'Erê',
 
 # Patrolling
 'markaspatrolleddiff' => 'Wek serrastkirî nîşan bide',
index 819a02f..a3ec90d 100644 (file)
@@ -315,7 +315,7 @@ $messages = array(
 'cancel' => 'Anular',
 'moredotdotdot' => 'Más...',
 'mypage' => 'Mi hoja',
-'mytalk' => 'Mi diskusyón',
+'mytalk' => 'La mi diskusyon',
 'anontalk' => 'Diskusyón para este adresso de IP',
 'navigation' => 'Navigación',
 'and' => '&#32;y',
@@ -567,9 +567,9 @@ Si venites aquí por yerro, torna a la hoja de antes.',
 Puedes [[Special:Search/{{PAGENAME}}|buscar el títůlo de esta hoja]] en otras hojas,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los rējistros relatados],
 ou [{{fullurl:{{FULLPAGENAME}}|action=edit}} trocar esta hoja]</span>.',
-'noarticletext-nopermission' => 'No ay teksto oy día en esta hoja.
-Puedes [[Special:Search/{{PAGENAME}}|buscar este títůlo de hoja]] en otras hojas,
-o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los rejistros relasyonados]</span>.',
+'noarticletext-nopermission' => 'No ay teksto en esta oja.
+Puedes [[Special:Search/{{PAGENAME}}|bushkar este titolo de oja]] en otras pajinas,
+o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} bushkar en los rejistros relasyonados]</span>.',
 'userpage-userdoesnotexist-view' => 'El cuento del usador $1 no está enrejistrado.',
 'note' => "'''Nota:'''",
 'previewnote' => "¡Akórdate ke esto es sólo una previsualizasion i aínda no se enrejistró!'''
@@ -709,7 +709,7 @@ Las búsquedas producen más o munco a buscar biervos comunes como «la» o «de
 
 # Preferences page
 'preferences' => 'Preferencias',
-'mypreferences' => 'Mis preferencias',
+'mypreferences' => 'Las mis preferensias',
 'changepassword' => 'Trocar el kóddiche',
 'prefs-skin' => 'Vista',
 'skin-preview' => 'Previstear',
@@ -893,7 +893,7 @@ La descripción en su [$2 hoja de descripción del arxivo] está amostrada debax
 
 # Watchlist
 'watchlist' => 'Mi lista de escogidas',
-'mywatchlist' => 'Mi lista de akavidamientos',
+'mywatchlist' => 'La mi lista de akavidamientos',
 'watchlistfor2' => 'Para $1 $2',
 'addedwatchtext' => "La hoja «[[:$1]]» fue ajustada a tu [[Special:Watchlist|lista de escogidas]]. Los trocamientos venideros en esta hoja i en tu hoja de diskussión associada se van indicar aí, i la hoja va aparecer '''gordo''' en la hoja de [[Special:RecentChanges|trocamientos freskos]] para hazerla más kolay de detektar.
 
@@ -966,7 +966,7 @@ A continuación se mostran las opciones actuales de la hoja '''$1''':",
 'blanknamespace' => '(Principal)',
 
 # Contributions
-'contributions' => 'Ajustamientos del empleador',
+'contributions' => 'Ajustamientos {{GENDER:$1|del usador|de la usadora}}',
 'contributions-title' => 'Ajustamientos {{GENDER:$1|del usuario|de la usuaria}} $1',
 'mycontris' => 'Mis ajustamientos',
 'contribsub2' => '$1 ($2)',
index 98430d6..ab1d33b 100644 (file)
@@ -2570,7 +2570,7 @@ $1',
 'blanknamespace' => '(മുഖ്യം)',
 
 # Contributions
-'contributions' => 'ഉപയോക്താവിന്റെ സംഭാവനകൾ',
+'contributions' => '{{GENDER:$1|ഉപയോക്താവിന്റെ}} സംഭാവനകൾ',
 'contributions-title' => '$1 എന്ന ഉപയോക്താവിന്റെ സംഭാവനകൾ',
 'mycontris' => 'സംഭാവനകൾ',
 'contribsub2' => '$1 എന്ന ഉപയോക്താവിന്റെ $2.',
index 765b56b..4c8bcb4 100644 (file)
@@ -675,8 +675,8 @@ $2',
 'noarticletext' => 'Одоогийн байдлаар энэ хуудсанд текст алга.
 Та нэг бол энэ хуудасны нэрээр бусад хуудсуудад [[Special:Search/{{PAGENAME}}|хайлт хийх]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} холбоотой логуудад хайлт хийх],
 эсвэл [{{fullurl:{{FULLPAGENAME}}|action=edit}} энэ хуудсыг засварлаж болно]</span>.',
-'noarticletext-nopermission' => 'Ð\9eдоогийн Ð±Ð°Ð¹Ð´Ð»Ð°Ð°Ñ\80 Ñ\8dнÑ\8d хуудсанд текст алга.
-Та энэхүү [[Special:Search/{{PAGENAME}}|гарчигийг бусад хуудсуудаас хайх]],  эсвэл <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} холбогдох логуудаас хайж болно]</span>.',
+'noarticletext-nopermission' => 'Яг Ð¾Ð´Ð¾Ð¾Ð³Ð¾Ð¾Ñ\80 Ñ\83г хуудсанд текст алга.
+Та бусад хуудсан уг хуудасны [[Special:Search/{{PAGENAME}}| гарчигаар хайлт хийх]], эсвэл <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} холбоотой логоор хайлт]</span> хийж болно, гэхдээ танд уг хуудсыг үүсгэх зөвшөөрөл алга.',
 'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" хэрэглэгчийн бүртгэл бүртгэгдээгүй байна. Та энэ хуудсыг үүсгэх/засварлах тухайгаа дахин тунгааж бодно уу.',
 'userpage-userdoesnotexist-view' => '"$1" гэсэн хэрэглэгч бүртгэгдээгүй байна.',
 'blocked-notice-logextract' => 'Энэхүү хэрэглэгч одоогоор түгжигдсэн байна.
@@ -1362,6 +1362,7 @@ $1 тэмдэгтээс богино байх ёстой.',
 'newsectionsummary' => '/* $1 */ шинэ хэсэг',
 'rc-enhanced-expand' => 'Дэлгэрэнгүй мэдээллийг үзүүлэх (ЖаваСкрипт хэрэглэгдэнэ)',
 'rc-enhanced-hide' => 'Дэлгэрэнгүй мэдээллийг нуух (ЖаваСкрипт хэрэглэгдэнэ)',
+'rc-old-title' => 'Анх өгсөн гарчиг нь "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Холбогдох өөрчлөлтүүд',
@@ -1552,11 +1553,28 @@ URL нь хүчинтэй, мөн түүн руу орж болж байгаа 
 'backend-fail-contenttype' => '"$1" дахь файлын агуулгын төрлийг таньж чадсангүй.',
 'backend-fail-usable' => '$1 файлд хангалттай зөвшөөрөл олгогдоогүй эсвэл агуулах хавтасгүйн улмаас хадгалж чадсангүй.',
 
+# Lock manager
+'lockmanager-notlocked' => '"$1" түгжигдээгүй тул түгжээг гаргана гэж юу байх вэ.',
+'lockmanager-fail-closelock' => '"$1" дээрх түгжээ файлыг хааж чадахгүй байна.',
+'lockmanager-fail-deletelock' => '"$1" дээрх түгжээ файлыг устгаж чадсангүй.',
+'lockmanager-fail-acquirelock' => '"$1" дээр түгжээ авч чадсангүй.',
+'lockmanager-fail-openlock' => '"$1" дээрх түгжээ файлыг нээж чадсангүй.',
+'lockmanager-fail-releaselock' => '"$1" дээрх түгжээ файлыг авч чадсангүй.',
+'lockmanager-fail-db-bucket' => '$1 блокоос хангалттай түгжээний мэдээлэл авч чадсангүй.',
+'lockmanager-fail-db-release' => '$1 сан дээрх түгжээг авч чадсангүй.',
+'lockmanager-fail-svr-release' => '$1 сервер дээрх түгжээг авч чадсангүй.',
+
 # ZipDirectoryReader
 'zip-file-open-error' => 'Файлыг зип шалгалт хийхэд алдаа гарлаа.',
 'zip-wrong-format' => 'Өгсөн файл зип файл биш байна.',
+'zip-bad' => 'Зип файлыг уншиж чадсангүй. Эвдэрсэн эсвэл унших боломжгүй файл байна.
+Аюулгүй байлыг хангасангүй.',
+'zip-unsupported' => 'MediaWiki -н дэмжигдсэн Зип файл биш тул уншиж болохгүй байна.
+Аюулгүй байдлыг хангасангүй.',
 
 # Special:UploadStash
+'uploadstash' => 'stash файл илгээх',
+'uploadstash-summary' => 'Уг хуудсанд вики-д нийтлээгүй боловч байршуулсан эсвэл байршуулж буй файлд нэвтрэх боломж олгож байна. Эдгээр байршуулсан эзнээс бусад хүнд харагдахгүй болно.',
 'uploadstash-errclear' => 'Файлыг цэвэрлэхэд саад учирлаа.',
 'uploadstash-refresh' => 'Харагдаж буй файлуудыг сэргээн харах',
 
@@ -1949,7 +1967,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 
 # Watchlist
 'watchlist' => 'Миний хянаж буй хуудсууд',
-'mywatchlist' => 'Ð\9cиний Ñ\85Ñ\8fнаж Ð±Ñ\83й Ñ\85Ñ\83Ñ\83дÑ\81Ñ\83Ñ\83дын жагсаалт',
+'mywatchlist' => 'Ð¥Ñ\8fналÑ\82Ñ\8bн Ñ\85Ñ\83Ñ\83дÑ\81ын жагсаалт',
 'watchlistfor2' => 'Хэрэглэгч: $1 $2',
 'nowatchlist' => 'Танд хянаж буй зүйл байхгүй.',
 'watchlistanontext' => 'Та өөрийн хянах листийг өөрчлөх буюу үзэхийг хүсвэл $1 хэрэгтэй.',
@@ -2196,9 +2214,9 @@ $1',
 'blanknamespace' => '(Гол)',
 
 # Contributions
-'contributions' => 'Хэрэглэгчийн хувь нэмэр',
+'contributions' => '{{GENDER:$1|Хэрэглэгчийн }} оруулсан хувь нэмэр',
 'contributions-title' => '$1 хэрэглэгчийн хувь нэмэр',
-'mycontris' => 'Ð\9cиний Ð¾руулсан хувь нэмэр',
+'mycontris' => 'Ð\9eруулсан хувь нэмэр',
 'contribsub2' => 'Хэрэглэгч: $1 ($2)',
 'nocontribs' => 'Энэ шалгуурт тохирох өөрчилсөн зүйлүүд олдсонгүй.',
 'uctop' => '(дээд)',
@@ -2239,7 +2257,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 чиглүүлэгч',
 'whatlinkshere-hidetrans' => '$1 оруулалт',
 'whatlinkshere-hidelinks' => 'Линкүүдийг $1',
-'whatlinkshere-hideimages' => 'зургийн холбоосыг $1',
+'whatlinkshere-hideimages' => '$1 файлын холбоос',
 'whatlinkshere-filters' => 'Шүүлтүүрүүд',
 
 # Block/unblock
@@ -2292,9 +2310,15 @@ $1',
 'ipusubmit' => 'Энэ түгжээг цуцлах',
 'unblocked' => '[[User:$1|$1]]-ийн хориг цуцлагдсан (идэвхижсэн) байна.',
 'unblocked-id' => '$1 түгжээг авч хаялаа',
+'blocklist' => 'Блоклогдсон хэрэглэгчид',
 'ipblocklist' => 'Түгжигдсэн хэрэглэгчид',
 'ipblocklist-legend' => 'Түгжигдсэн хэрэглэгчийг хайх',
+'blocklist-userblocks' => 'бүртгэгдсэн блок-г нуух',
+'blocklist-tempblocks' => 'Түр зуурын блокыг нуух',
+'blocklist-addressblocks' => 'Ганц IP блокыг нуух',
+'blocklist-target' => 'Бай',
 'blocklist-expiry' => 'Цуцлагдана',
+'blocklist-params' => 'Блоклох параметрүүд',
 'blocklist-reason' => 'Шалтгаан',
 'ipblocklist-submit' => 'Хайх',
 'ipblocklist-localblock' => 'Дотоодын түгжилт',
@@ -2466,6 +2490,7 @@ $1',
 Хуудсыг гаргахын тулд доорх бичих талбарын мөр бүрт нэг гарчигийг оруулан, одоогийн болон хуучин бүх засварууд ба хуудасны түүхийн мөрүүд, эсвэл одоогийн засвар болон сүүлийн засварын талаарх мэдээллийн алиныг авах тухай сонголт хийнэ.
 
 Хоёр дахь сонголтын хувьд мөн холбоос ашиглах боломжтой; жишээ нь "[[{{MediaWiki:Mainpage}}]]" хуудаст [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] гэх холбоосыг ашиглаж болно.',
+'exportall' => 'Бүх хуудсыг экпортлох',
 'exportcuronly' => 'Бүх түүхийг биш, зөвхөн одоогийн өөрчлөлтийг багтаа',
 'exportnohistory' => "----
 '''Анхаар:''' Энэ маягтын дагуу хуудсуудын бүтэн түүхийг экспортлох үйлдэл гүйцэтгэлийн шалтгаануудын улмаас зогсоогдсон байна.",
@@ -2554,6 +2579,9 @@ $1',
 'import-logentry-interwiki' => '$1-г транс-викидлээ',
 'import-logentry-interwiki-detail' => '$2-с авсан $1 засвар',
 
+# JavaScriptTest
+'javascripttest' => 'JavaScript туршилт',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Таны хэрэглэгчийн хуудас',
 'tooltip-pt-anonuserpage' => 'Таны хэрэглэж буй IP хаягийн хэрэглэгчийн хуудас',
@@ -2702,6 +2730,8 @@ $1',
 'file-nohires' => 'Илүү чанартай хувилбар байхгүй байна.',
 'svg-long-desc' => 'SVG файл, $1 × $2 пиксэл, файлын хэмжээ: $3',
 'show-big-image' => 'Хамгийн сайн чанартай хувилбар',
+'show-big-image-preview' => 'Үзлэгийн хэмжээ : $1',
+'show-big-image-other' => 'Бусад {{PLURAL:$2|зургын нягтрал|зургын нягтрал}}: $1.',
 'show-big-image-size' => '$1 × $2 пиксел',
 'file-info-gif-looped' => 'эргэлдсэн',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|фрэйм}}',
@@ -2722,6 +2752,10 @@ $1',
 'sp-newimages-showfrom' => '$2, $1-с эхлэж шинэ файлуудыг үзүүлэх',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 сек|$1 сек}}',
+'minutes' => '{{PLURAL:$1|$1 мин|$1 мин}}',
+'hours' => '{{PLURAL:$1|$1 цаг|$1 цаг}}',
+'days' => '{{PLURAL:$1|$1 өдөр|$1 өдөр}}',
 'ago' => '$1 -ын өмнө',
 
 # Bad image list
index 0956982..ca0b201 100644 (file)
@@ -940,7 +940,7 @@ Passordet for den nye kontoen kan verta endra på ''[[Special:ChangePassword|end
 'newarticle' => '(Ny)',
 'newarticletext' => "Du har følgt ei lenkje til ei side som ikkje finst enno.
 For å opprette sida, kan du skrive i boksen under (sjå [[{{MediaWiki:Helppage}}|hjelpesida]] for meir informasjon).
-Dersom du ikkje ønskjer å opprette sida, kan du utan risiko klikke på '''attende'''-knappen i nettlesaren din.",
+Hamna du her ved ein feil, klikk på '''attende'''-knappen i nettlesaren din.",
 'anontalkpagetext' => "----''Dette er ei diskusjonsside for ein anonym brukar som ikkje har oppretta konto eller ikkje har logga inn.
 Vi er difor nøydde til å bruke den numeriske IP-adressa til å identifisere brukaren. Same IP-adresse kan vere knytt til fleire brukarar. Om du er ein anonym brukar og meiner at du har fått irrelevante kommentarar på ei slik side, [[Special:UserLogin/signup|opprett ein brukarkonto]] eller [[Special:UserLogin|logg inn]] slik at vi unngår framtidige forvekslingar med andre anonyme brukarar.''",
 'noarticletext' => 'Det er nett no ikkje noko tekst på denne sida.
@@ -2313,15 +2313,20 @@ Om du seinare vil fjerne sida frå overvakingslista, klikk på «Fjern overvakin
 'enotif_impersonal_salutation' => '{{SITENAME}}-brukar',
 'enotif_subject_deleted' => '{{SITENAME}}-sida $1 har vorte sletta av {{gender:$2|$2}}',
 'enotif_subject_created' => '{{SITENAME}}-sida $1 har vorte oppretta av {{gender:$2|$2}}',
+'enotif_subject_moved' => '{{SITENAME}}-sida $1 har vorte flytta av {{gender:$2|$2}}',
+'enotif_subject_restored' => '{{SITENAME}}-sida $1 har vorte attoppretta av {{gender:$2|$2}}',
+'enotif_subject_changed' => '{{SITENAME}}-sida $1 har vorte endra av {{gender:$2|$2}}',
+'enotif_body_intro_deleted' => '{{SITENAME}}-sida $1 vart sletta $PAGEEDITDATE av {{gender:$2|$2}}, sjå $3 for den gjeldande versjonen.',
+'enotif_body_intro_created' => '{{SITENAME}}-sida $1 vart oppretta $PAGEEDITDATE av {{gender:$2|$2}}, sjå $3 for den gjeldande versjonen.',
+'enotif_body_intro_moved' => '{{SITENAME}}-sida $1 vart flytt $PAGEEDITDATE av {{gender:$2|$2}}, sjå $3 for den gjeldande versjonen.',
+'enotif_body_intro_restored' => '{{SITENAME}}-sida $1 vart attoppretta $PAGEEDITDATE av {{gender:$2|$2}}, sjå $3 for den gjeldande versjonen.',
+'enotif_body_intro_changed' => '{{SITENAME}}-sida $1 vart endra $PAGEEDITDATE av {{gender:$2|$2}}, sjå $3 for den gjeldande versjonen.',
 'enotif_lastvisited' => 'Sjå $1 for alle endringane sidan siste vitjing.',
 'enotif_lastdiff' => 'Sjå $1 for å sjå denne endringa.',
 'enotif_anon_editor' => 'anonym brukar $1',
 'enotif_body' => 'Kjære $WATCHINGUSERNAME,
 
-
-{{SITENAME}}-sida $PAGETITLE er vorten $CHANGEDORCREATED $PAGEEDITDATE av $PAGEEDITOR, sjå $PAGETITLE_URL for den gjeldande versjonen.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 Endringssamandraget var: $PAGESUMMARY $PAGEMINOREDIT
 
@@ -2329,8 +2334,7 @@ Kontakta brukaren:
 e-post: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Du får ikkje fleire endringsvarsel før du vitjar sida på nytt.
-Du kan dessutan nullstilla varselflagga for alle sidene på overvakingslista di.
+Du får ikkje fleire endringsvarsel før du vitjar sida på nytt. Du kan dessutan nullstilla varselflagga for alle sidene på overvakingslista di.
 
 Helsing det venlege meldingssystemet ditt for {{SITENAME}}
 
@@ -2519,7 +2523,7 @@ $1',
 'blanknamespace' => '(Hovud)',
 
 # Contributions
-'contributions' => 'Brukarbidrag',
+'contributions' => '{{GENDER:$1|Brukarbidrag}}',
 'contributions-title' => 'Bidrag av $1',
 'mycontris' => 'Bidrag',
 'contribsub2' => 'For $1 ($2)',
index 083e83c..b8f9c9b 100644 (file)
@@ -404,12 +404,12 @@ $1',
 'newmessageslinkplural' => '{{PLURAL:$1|ਇੱਕ ਨਵਾਂ ਸੁਨੇਹਾ|ਨਵੇਂ ਸੁਨੇਹੇ}} {{PLURAL:$1|ਹੈ|ਹਨ}}',
 'newmessagesdifflinkplural' => 'ਆਖ਼ਰੀ {{PLURAL:$1|ਤਬਦੀਲੀ|ਤਬਦੀਲੀਆਂ}}',
 'youhavenewmessagesmulti' => '$1 ’ਤੇ ਤੁਹਾਡੇ ਲਈ ਨਵੇਂ ਸੁਨੇਹੇ ਹਨ',
-'editsection' => 'ਸà©\8bਧà©\8b',
+'editsection' => 'ਸੰਪਾਦਨ',
 'editold' => 'ਸੋਧੋ',
 'viewsourceold' => 'ਸਰੋਤ ਵੇਖੋ',
 'editlink' => 'ਸੋਧੋ',
 'viewsourcelink' => 'ਸਰੋਤ ਵੇਖੋ',
-'editsectionhint' => '$1 ਸੈਕਸ਼ਨ ਸੋਧੋ',
+'editsectionhint' => 'ਭਾਗ ਸੰਪਾਦਨ: $1',
 'toc' => 'ਲਿਸਟ',
 'showtoc' => 'ਵੇਖੋ',
 'hidetoc' => 'ਓਹਲੇ',
@@ -518,7 +518,7 @@ $1',
 
 You can continue to use {{SITENAME}} anonymously, or you can log in again as the same or as a different user.
 Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
-'welcomeuser' => 'à¨\9cà©\80 à¨\86à¨\87à¨\86à¨\82 à¨¨à©\82à©°, $1!',
+'welcomeuser' => 'ਸਵਾà¨\97ਤ, $1!',
 'welcomecreation-msg' => 'ਤੁਹਾਡਾ ਖਾਤਾ ਬਣ ਚੁੱਕਾ ਹੈ। ਆਪਣੀਆਂ [[Special:Preferences|{{SITENAME}} ਪਸੰਦਾਂ]] ਬਦਲਣੀਆਂ ਨਾ ਭੁੱਲੋ।',
 'yourname' => 'ਮੈਂਬਰ ਨਾਂ:',
 'yourpassword' => 'ਪਾਸਵਰਡ:',
@@ -1563,7 +1563,7 @@ to upload files.',
 
 # Watchlist
 'watchlist' => 'ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ',
-'mywatchlist' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f',
+'mywatchlist' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80',
 'watchlistfor2' => '$1 $2 ਲਈ',
 'nowatchlist' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।',
 'watchlistanontext' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ $1।',
@@ -1738,7 +1738,7 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'whatlinkshere-hideredirs' => 'ਅਸਿੱਧੇ ਰਾਹ $1',
 'whatlinkshere-hidetrans' => '$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।',
 'whatlinkshere-hidelinks' => '$1 ਲਿੰਕ',
-'whatlinkshere-hideimages' => 'ਤਸਵà©\80ਰ ਜੋੜ $1',
+'whatlinkshere-hideimages' => 'ਫ਼ਾà¨\88ਲ ਜੋੜ $1',
 'whatlinkshere-filters' => 'ਛਾਨਣੀਆਂ',
 
 # Block/unblock
index f1c07b5..eee805d 100644 (file)
@@ -3638,17 +3638,17 @@ Le figure a së smon-o a amzura pijn-a, j'àotre sòrt d'archivi a ven-o fàite
 
 # Special:BlankPage
 'blankpage' => 'Pàgina bianca',
-'intentionallyblankpage' => "Sta pàgina-sì a l'é lassà antensionalment an bianch.",
+'intentionallyblankpage' => "Costa pàgina a l'é lassà veuida a pòsta.",
 
 # External image whitelist
-'external_image_whitelist' => "  #Lassa sta riga-sì pròpi con a l'é<pre>
-#Buta ij tòch d'espression regolar (mach la part che a va an tra //) sota
-#Ste sì a saran confrontà con le URL dle figure esterne (hotlinked)
-#Cole che as cobio a saran visualisà com figure, dasnò a sarà mach mostà un colegament a la figura
+'external_image_whitelist' => "  #Lassé costa riga-sì pròpi 'me ch'a l'é<pre>
+#Buté ij fragment d'espression regolar (mach la part che a va antra le //) sì-sota
+#Coste-sì a saran confrontà con le liure dle figure esterne
+#Cole che as cobio a saran visualisà com figure, dësnò a sarà mach mostrà na liura a la figura
 #Le linie che a ancamin-o con # a saran tratà com coment
-#Sòn sì a l'é pa sensìbil a minuscol o maiuscol
+#La lista a l'é indiferenta a minùscol o majùscol
 
-#Buta tùit ij tòch ëd regex sota sta linia-sì. Lassa sta linia-sì pròpi com a l'é</pre>",
+#Buté tùit ij fragment d'espression regolar sota sta linia-sì. Lassé costa linia pròpi com a l'é</pre>",
 
 # Special:Tags
 'tags' => 'Tag ëd modìfiche vàlid',
index f5a8c0c..1801ff0 100644 (file)
@@ -506,7 +506,7 @@ $1',
 'viewsource' => 'سرچينه کتل',
 'viewsource-title' => 'د $1 سرچينه کتل',
 'actionthrottled' => 'د دې کړنې مخنيوی وشو',
-'protectedpagetext' => 'دا Ù\85Ø® Ø¯ Ø¨Ø¯Ù\84Ù\88Ù\86 Ø§Ù\88 Ø³Ù\85Ù\88Ù\86 Ø¯ Ù\85Ø®Ù\86Ù\8aÙ\88Ù\8a Ù¾Ù\87 ØªÚ©Ù\84 ØªÚ\93Ù\84 Ø´Ù\88Û\8c Ø¯ی.',
+'protectedpagetext' => 'دا Ù\85Ø® Ø¯ Ø³Ù\85Ù\88Ù\86 Ø§Ù\88 Ù\86Ù\88رÙ\88 Ú©Ú\93Ù\86Ù\88 Ø¯ ØªØ±Ø³Ø±Ù\87 Ú©Ù\88Ù\84Ù\88 Ù¾Ù\87 ØªÚ©Ù\84 Ú\98غÙ\88رÙ\84 Ø´Ù\88ی.',
 'viewsourcetext' => 'تاسې د دې مخ سرچينه کتلی او لمېسلی شی:',
 'protectedinterface' => 'دا مخ د دې ويکي د ساوترې د ليدنمخ متن لري، او د ورانکارۍ په خاطر ژغورل شوی.
 په ټولو ويکي ګانو کې د ژباړې د ورګډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [//translatewiki.net/ translatewiki.net] وکاروۍ.',
@@ -817,6 +817,11 @@ $1',
 پدې نوم د پخوا نه يو مخ شته.',
 'defaultmessagetext' => 'تلواليزه پيغام متن',
 
+# Content models
+'content-model-wikitext' => 'ويکي متن',
+'content-model-text' => 'ساده متن',
+'content-model-javascript' => 'جاواسکرېپټ',
+
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''ګواښنه:''' دا کينډۍ د خپل ټاکلي بريد نه ډېره لويه ده.
 ځينې کينډۍ به په کې ګډې نه شي.",
@@ -1799,7 +1804,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'blanknamespace' => '(آرنی)',
 
 # Contributions
-'contributions' => 'د کارن ونډې',
+'contributions' => '{{GENDER:$1|کارن}} ونډې',
 'contributions-title' => 'د $1 کارن ونډې',
 'mycontris' => 'ونډې',
 'contribsub2' => 'د $1 لپاره ($2)',
@@ -2122,7 +2127,10 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'pageinfo-header-restrictions' => 'مخ ژغورنه',
 'pageinfo-header-properties' => 'د مخ ځانتياوې',
 'pageinfo-display-title' => 'ښکارېدونکی سرليک',
+'pageinfo-length' => 'مخ اوږدوالی (په بايټونو)',
 'pageinfo-article-id' => 'د مخ پېژند',
+'pageinfo-language' => 'د مخ د مېنځپانګې ژبه',
+'pageinfo-robot-policy' => 'د پلټن ماشين دريځ',
 'pageinfo-robot-index' => 'ليکلړوړ',
 'pageinfo-robot-noindex' => 'ليکلړوړ نه',
 'pageinfo-views' => 'د کتنو شمېر',
@@ -2130,7 +2138,12 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'pageinfo-redirects-name' => 'دې مخ ته ورګرځونې',
 'pageinfo-subpages-name' => 'دې مخ ته څېرمه مخونه',
 'pageinfo-firstuser' => 'مخ جوړونکی',
+'pageinfo-firsttime' => 'د مخ جوړېدنې نېټه',
+'pageinfo-lastuser' => 'وروستنی سمونګر',
 'pageinfo-edits' => 'د ټولو سمونونو شمېر',
+'pageinfo-toolboxlink' => 'د مخ مالومات',
+'pageinfo-contentpage' => 'مېنځپانګيز مخ کې شمېرل شوی',
+'pageinfo-contentpage-yes' => 'هو',
 
 # Skin names
 'skinname-standard' => 'کلاسيک',
@@ -2641,8 +2654,8 @@ $5
 'revdelete-content-unhid' => 'مېنځپانګه ښکاره شوی',
 'revdelete-uname-unhid' => 'ښکاره کارن-نوم',
 'logentry-move-move' => '$1 د $3 مخ $4 ته ولېږداوه',
-'logentry-newusers-newusers' => '$1 يو کارن ګڼون جوړ کړ',
-'logentry-newusers-create' => '$1 يو کارن ګڼون جوړ کړ',
+'logentry-newusers-newusers' => 'د $1 کارن ګڼون جوړ شو',
+'logentry-newusers-create' => 'د $1 کارن ګڼون جوړ شو',
 'logentry-newusers-autocreate' => 'د $1 ګڼون په اتوماتيک ډول جوړ شو',
 'newuserlog-byemail' => 'پټنوم مو برېښليک ته درولېږه',
 
index 954b774..f918405 100644 (file)
@@ -2576,7 +2576,7 @@ $1',
 'blanknamespace' => 'Articole',
 
 # Contributions
-'contributions' => 'Contribuții utilizator',
+'contributions' => 'Contribuții {{GENDER:$1|utilizator}}',
 'contributions-title' => 'Contribuțiile utilizatorului $1',
 'mycontris' => 'Contribuții',
 'contribsub2' => 'Pentru $1 ($2)',
index f03ef6e..f07257d 100644 (file)
@@ -241,7 +241,7 @@ $messages = array(
 
 'underline-always' => 'සැමවිටම කරන්න',
 'underline-never' => 'කිසිවිටෙක නොකරන්න',
-'underline-default' => 'බà·\8aâ\80\8dරà·\80à·\94à·\83රයà·\99à·\84à·\92 à¶´à·\99රනà·\92මà·\92ය à¶\85නà·\94à·\80ය',
+'underline-default' => 'à·\83ම à·\84à·\9d à¶\9cà·\80à·\9aà·\82à¶\9aයà·\99à·\84à·\92 à¶´à·\99රනà·\92මà·\92ය',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'අකුරු විලාසයන් සංස්කරණ පෙදෙස:',
@@ -328,7 +328,7 @@ $messages = array(
 'newwindow' => '(නව කවුළුවක විවෘතවේ)',
 'cancel' => 'අත් හරින්න',
 'moredotdotdot' => 'තවත්...',
-'mypage' => 'මà¶\9cà·\9a à¶´à·\92ටà·\94à·\80',
+'mypage' => 'පිටුව',
 'mytalk' => 'සාකච්ඡාව',
 'anontalk' => 'මෙම අයිපී ලිපිනය සඳහා සාකච්ඡාව',
 'navigation' => 'යාත්‍රණය',
@@ -351,7 +351,7 @@ $messages = array(
 'vector-action-protect' => 'ආරක්‍ෂණය',
 'vector-action-undelete' => 'මකාදැමීම අවලංගු කරන්න',
 'vector-action-unprotect' => 'ආරක්ෂණ තත්වය වෙනස් කරන්න',
-'vector-simplesearch-preference' => 'à·\80à·\90ඩà·\92දà·\92යà·\94ණà·\94à¶\9aà·\85 à·\83à·\99à·\80à·\94මà·\8a à¶ºà·\9dජනà·\8f à·\83à¶\9aà·\8aâ\80\8dරà·\93ය à¶\9aරනà·\8aන (වෙක්ටර් තීමය සඳහා පමණි)',
+'vector-simplesearch-preference' => 'à·\83à·\94à·\85à·\94 à¶\9aà·\85 à·\83à·\99à·\80à·\94මà·\8a à¶¶à·\8fරය (වෙක්ටර් තීමය සඳහා පමණි)',
 'vector-view-create' => 'තනන්න',
 'vector-view-edit' => 'සංස්කරණය',
 'vector-view-history' => 'ඉතිහාසය නරඹන්න',
@@ -878,7 +878,7 @@ $2
 'note' => "'''සටහන:'''",
 'previewnote' => "'''මෙය පෙරදසුනක් පමණක් බව සිහිතබාගන්න.'''
 ඔබගේ වෙනස්කිරීම් තවමත් සුරැකීමට ලක් කොට නොමැත!",
-'continue-editing' => 'සංස්කරණය කරගෙනයන්න',
+'continue-editing' => 'සංස්කරණ කලාපය වෙත යන්න',
 'previewconflict' => 'ඔබ විසින් සුරැකීම තෝරාගත්තොත්,  ඉහළ පෙළ සංස්කරණ සරියෙහි,  පෙළ දර්ශනය විය හැකි අයුර මෙම පෙර-දසුනෙන් ආවර්ජනය වේ.',
 'session_fail_preview' => "'''කණගාටුයි! සැසි දත්ත හානියක් හේතුවෙන් අප විසින් ඔබගේ  සංස්කරණය ක්‍රියායයනය කිරීමට නොහැකි වී ඇත.
 කරුණාකර නැවත උත්සාහ කරන්න.
@@ -1933,9 +1933,9 @@ When filtered by user, only files where that user uploaded the most recent versi
 
 'disambiguations' => 'නිරාකරණ පිටු සඳහා සබැදෙන පිටු',
 'disambiguationspage' => 'Template:තේරුම් නිරාකරණය',
-'disambiguations-text' => "à¶\89දà·\92රà·\92 à¶´à·\92ටà·\94 '''à·\80à¶\9aà·\8aâ\80\8dරà·\9dතà·\8aතà·\92à·\84රණ à¶´à·\92ටà·\94à·\80'''à¶\9aට à·\83බà·\90â\80\8dඳà·\9a.
+'disambiguations-text' => "පà·\84ත à¶¯à·\90à¶\9aà·\8aà·\80à·\99න à¶´à·\92ටà·\94 à¶\85තර '''à·\80à¶\9aà·\8aâ\80\8dරà·\9dතà·\8aතà·\92à·\84රණ à¶´à·\92ටà·\94à·\80à¶\9aට''' à·\83බà·\90ඳà·\99න à¶\91à¶\9aà·\8a à·\83බà·\90ඳà·\92යà¶\9aà·\8a à·\84à·\9d à¶\87ත.
 ඒවා ඒ වෙනුවට අනුරූප මාතෘකාවට සබැඳිය යුතුය.<br />
-යම් පිටුවක් වක්‍රෝත්තිහරණ පිටුවක් ලෙස සලකනුයේ එය [[MediaWiki:Disambiguationspage]] වෙතින් සබැඳුනු සැකිල්ලක් භාවිතා කරන්නේ නම්ය",
+යම් පිටුවක් වක්‍රෝත්තිහරණ පිටුවක් ලෙස සලකනුයේ එය [[MediaWiki:Disambiguationspage]] වෙතින් සබැඳුනු සැකිල්ලක් භාවිතා කරන්නේ නම්ය.",
 
 'doubleredirects' => 'ද්විත්ව යළි-යොමුකිරීම්',
 'doubleredirectstext' => 'අනෙකුත් යළි-යොමුවීම් පිටුවලට යළි-යොමුවන පිටුවල ලැයිස්තුවක් මෙම පිටුවේ දැක්වේ.
@@ -2419,7 +2419,7 @@ $1',
 'blanknamespace' => '(ප්‍රධාන)',
 
 # Contributions
-'contributions' => 'මෙම පරිශීලකගේ දායකත්වයන්',
+'contributions' => '{{GENDER:$1|පරිශීලකගේ}} දායකත්වයන්',
 'contributions-title' => ' $1 සඳහා පරිශීලක දායකත්වයන්',
 'mycontris' => 'දායකත්ව',
 'contribsub2' => '$1 සඳහා ($2)',
index 7c429cc..ec9432e 100644 (file)
@@ -2495,7 +2495,7 @@ $1',
 'blanknamespace' => '(Osnovno)',
 
 # Contributions
-'contributions' => 'Uporabnikovi prispevki',
+'contributions' => '{{GENDER:$1|Uporabnikovi|Uporabničini}} prispevki',
 'contributions-title' => 'Prispevki uporabnika $1',
 'mycontris' => 'Prispevki',
 'contribsub2' => 'Uporabnik: $1 ($2)',
index a445735..52fa96a 100644 (file)
@@ -2555,7 +2555,7 @@ $1',
 'blanknamespace' => '(Chính)',
 
 # Contributions
-'contributions' => 'Đóng góp của thành viên',
+'contributions' => '{{GENDER:$1}}Đóng góp của thành viên',
 'contributions-title' => 'Đóng góp của thành viên $1',
 'mycontris' => 'Đóng góp',
 'contribsub2' => 'Của $1 ($2)',
index df1bcb2..907dbc2 100644 (file)
@@ -186,8 +186,8 @@ $messages = array(
 'newwindow' => '(yíò sí nínú fèrèsè tuntun)',
 'cancel' => 'Fagilé',
 'moredotdotdot' => 'Ẹ̀kúnrẹ́rẹ́...',
-'mypage' => 'Ojúewé mi',
-'mytalk' => 'Ọ̀rọ̀ mi',
+'mypage' => 'Ojúewé',
+'mytalk' => 'Ọ̀rọ̀',
 'anontalk' => 'Ọ̀rọ̀ fún IP yí',
 'navigation' => 'Atọ́ka',
 'and' => '&#32;àti',
@@ -1091,7 +1091,7 @@ Ní báyìí ná ẹ le ṣàwárí lọ́dọ̀ Google.
 
 # Preferences page
 'preferences' => 'Àwọn ìfẹ́ràn',
-'mypreferences' => 'Àwọn ìfẹ́ràn mi',
+'mypreferences' => 'Àwọn ìfẹ́ràn',
 'prefs-edits' => 'Iye àwọn àtúnṣe:',
 'prefsnologin' => 'Ẹ kò tíì wọlé',
 'prefsnologintext' => 'Ẹ gbọ́dọ̀ <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} wọlé]</span> láti to àwọn ìfẹ́ràn oníṣe.',
@@ -1981,7 +1981,7 @@ Bákannáà ẹ wo [[Special:WantedCategories|àwọn ẹ̀ka wíwá]].',
 
 # Watchlist
 'watchlist' => 'Ìmójútó mi',
-'mywatchlist' => 'Ìmójútó mi',
+'mywatchlist' => 'Ìmójútó',
 'watchlistfor2' => 'Fún $1 $2',
 'nowatchlist' => 'Ẹ kò ní ohun kankan nínú ìmójútó yín.',
 'watchlistanontext' => 'Ẹ jọ̀wọ́ $1 láti wò tàbí ṣàtúnṣe àwọn ohun inú ìmójútó yín.',
@@ -2218,9 +2218,9 @@ $1',
 'blanknamespace' => '(Gbangba)',
 
 # Contributions
-'contributions' => 'Àwọn àfikún ẹnitínṣe',
+'contributions' => 'Àwọn àfikún {{GENDER:$1|oníṣe}}',
 'contributions-title' => 'Àwọn àfikún oníṣe fún $1',
-'mycontris' => 'Àwọn àfikún mi',
+'mycontris' => 'Àwọn àfikún',
 'contribsub2' => 'Fún $1 ($2)',
 'uctop' => '(lókè)',
 'month' => 'Láti osù (àti sẹ́yìn):',
@@ -2260,7 +2260,7 @@ $1',
 'whatlinkshere-hideredirs' => '$1 àtúnjúwe',
 'whatlinkshere-hidetrans' => '$1 ìkómọ́ra',
 'whatlinkshere-hidelinks' => '$1 ìjápọ̀',
-'whatlinkshere-hideimages' => '$1 àwọn ìjápọ̀ àwòrán',
+'whatlinkshere-hideimages' => '$1 àwọn ìjápọ̀ fáìlì',
 'whatlinkshere-filters' => 'Ajọ̀',
 
 # Block/unblock
index 346b0ee..6477c3b 100644 (file)
@@ -509,6 +509,7 @@ $messages = array(
 'namespaces' => '名字空间',
 'variants' => '变换',
 
+'navigation-heading' => '导航菜单',
 'errorpagetitle' => '错误',
 'returnto' => '返回到$1。',
 'tagline' => '来自{{SITENAME}}',
@@ -608,7 +609,7 @@ $1',
 'newmessagesdifflink' => '最后更改',
 'youhavenewmessagesfromusers' => '你有来自{{PLURAL:$3| 另一位用户| $3位用户}}的$1($2)。',
 'youhavenewmessagesmanyusers' => '你有来自多位用户的$1($2)。',
-'newmessageslinkplural' => '{{PLURAL:$1|一条新信息|$1条信息}}',
+'newmessageslinkplural' => '{{PLURAL:$1|一条新信息|信息}}',
 'newmessagesdifflinkplural' => '最新$1次更改',
 'youhavenewmessagesmulti' => '你在$1有新信息',
 'editsection' => '编辑',
@@ -616,7 +617,7 @@ $1',
 'viewsourceold' => '查看源代码',
 'editlink' => '编辑',
 'viewsourcelink' => '查看源代码',
-'editsectionhint' => '编辑段落:$1',
+'editsectionhint' => '编辑章节:$1',
 'toc' => '目录',
 'showtoc' => '显示',
 'hidetoc' => '隐藏',
@@ -713,7 +714,7 @@ $1',
 'viewsource-title' => '查看$1的源代码',
 'actionthrottled' => '操作被限制',
 'actionthrottledtext' => '基于反垃圾的考量,您被限制在短时间内多次重复该操作,但您已超过此上限。请在数分钟后再尝试。',
-'protectedpagetext' => '该页面已被保护以防止编辑。',
+'protectedpagetext' => '该页面已被保护以防止编辑和其他操作。',
 'viewsourcetext' => '您可以查看并复制此页面的源代码:',
 'viewyourtext' => "您可以查看并复制'''您对此页面作出编辑后'''的源代码:",
 'protectedinterface' => '该页提供此wiki软件的界面文字,它已被保护以防止恶意修改。
@@ -746,6 +747,7 @@ $2',
 'logouttext' => "'''您现在已经退出。'''
 
 您可以继续以匿名方式使用{{SITENAME}},或再次以相同或不同用户身份<span class='plainlinks'>[$1 登录]</span>。请注意一些页面可能仍然显示您为登录状态,直到您清空您的浏览器缓存为止。",
+'welcomeuser' => '欢迎,$1!',
 'yourname' => '用户名:',
 'yourpassword' => '密码:',
 'yourpasswordagain' => '再次输入密码:',
@@ -2485,7 +2487,7 @@ $1',
 'blanknamespace' => '(主要)',
 
 # Contributions
-'contributions' => '用户贡献',
+'contributions' => '{{GENDER:$1|用户}}贡献',
 'contributions-title' => '$1的用户贡献',
 'mycontris' => '贡献',
 'contribsub2' => '$1的贡献($2)',
@@ -3978,4 +3980,6 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'duration-centuries' => '$1个世纪',
 'duration-millennia' => '$1千年',
 
+# Unknown messages
+'svg-long-error' => '无效的SVG文件:$1',
 );
index cc8a312..8ac2e00 100644 (file)
@@ -477,7 +477,7 @@ $1',
 'newmessagesdifflink' => '最後更改',
 'youhavenewmessagesfromusers' => '你有來自{{PLURAL:$3| 另一位用戶| $3位用戶}}的$1 ( $2 )。',
 'youhavenewmessagesmanyusers' => '你有來自多位用戶的$1( $2 )。',
-'newmessageslinkplural' => '$1項新訊息',
+'newmessageslinkplural' => '{{PLURAL:$1|一項新訊息|新訊息}}',
 'newmessagesdifflinkplural' => '最新$1次更改',
 'youhavenewmessagesmulti' => '您在 $1 有一條新訊息',
 'editsection' => '編輯',
@@ -485,7 +485,7 @@ $1',
 'viewsourceold' => '檢視原始碼',
 'editlink' => '編輯',
 'viewsourcelink' => '檢視原始碼',
-'editsectionhint' => '編輯段落:$1',
+'editsectionhint' => '編輯章節:$1',
 'toc' => '目錄',
 'showtoc' => '顯示',
 'hidetoc' => '隱藏',
@@ -2426,7 +2426,7 @@ $1',
 'blanknamespace' => '(主)',
 
 # Contributions
-'contributions' => '用戶貢獻',
+'contributions' => '{{GENDER:$1|用戶}}貢獻',
 'contributions-title' => '$1的用戶貢獻',
 'mycontris' => '我的貢獻',
 'contribsub2' => '$1的貢獻 ($2)',
index 330514e..c9a188b 100644 (file)
@@ -1244,7 +1244,8 @@ CREATE TABLE /*_*/logging (
   -- Freeform text. Interpreted as edit history comments.
   log_comment varchar(255) NOT NULL default '',
 
-  -- LF separated list of miscellaneous parameters
+  -- miscellaneous parameters:
+  -- LF separated list (old system) or serialized PHP array (new system)
   log_params blob NOT NULL,
 
   -- rev_deleted for logs
index 8a5421e..3589ea1 100644 (file)
@@ -42,6 +42,7 @@ table.mw-enhanced-rc td.mw-enhanced-rc-nested {
        zoom: 1;
        width: 15px;
        height: 15px;
+       cursor: pointer;
 }
 
 .mw-enhancedchanges-arrow.mw-enhancedchanges-arrow-space {
index bc24236..652fa43 100644 (file)
@@ -65,6 +65,18 @@ Template:inner list
 * item 1
 !! endarticle
 
+!! article
+Template:tbl-start
+!! text
+{|
+!! endarticle
+
+!! article
+Template:tbl-end
+!! text
+|}
+!! endarticle
+
 !! article
 Template:!
 !! text
@@ -542,7 +554,7 @@ nowiki 3
 ### Comments
 ###
 !! test
-Comments and Pre
+Comments and Indent-Pre
 !! input
 <!-- comment 1 --> asdf
 
@@ -948,7 +960,7 @@ Bug 6200: Preformatted in <blockquote>
 !! end
 
 !!test
-Templates: Pre: 1a. Templates that break a line should suppress <pre>
+Templates: Indent-Pre: 1a. Templates that break a line should suppress <pre>
 !!input
  {{echo|}}
 !!result
@@ -956,7 +968,7 @@ Templates: Pre: 1a. Templates that break a line should suppress <pre>
 !!end
 
 !!test
-Templates: Pre: 1b. Templates that break a line should suppress <pre>
+Templates: Indent-Pre: 1b. Templates that break a line should suppress <pre>
 !!input
  {{echo|
 foo}}
@@ -966,7 +978,7 @@ foo}}
 !!end
 
 !! test
-Templates: Pre: 1c: Wrapping should be based on expanded content
+Templates: Indent-Pre: 1c: Wrapping should be based on expanded content
 !! input
  {{echo|a
 b}}
@@ -978,7 +990,7 @@ b}}
 !!end
 
 !! test
-Templates: Pre: 1d: Wrapping should be based on expanded content
+Templates: Indent-Pre: 1d: Wrapping should be based on expanded content
 !! input
  {{echo|a
 b
@@ -999,7 +1011,7 @@ c
 !!end
 
 !!test
-Templates: Pre: 1e. Wrapping should be based on expanded content
+Templates: Indent-Pre: 1e. Wrapping should be based on expanded content
 !!input
 {{echo| foo}}
 
@@ -1030,7 +1042,7 @@ bar
 !!end
 
 !! test
-Templates: Pre: 1f: Wrapping should be based on expanded content
+Templates: Indent-Pre: 1f: Wrapping should be based on expanded content
 !! input
 {{echo| }}a
 
@@ -1120,7 +1132,7 @@ Templates: Strip whitespace from named parameters, but not positional ones
 ###
 
 !!test
-1a. Pre and Comments
+1a. Indent-Pre and Comments
 !!input
  a
 <!--a-->
@@ -1133,7 +1145,7 @@ c
 !!end
 
 !!test
-1b. Pre and Comments
+1b. Indent-Pre and Comments
 !!input
  a
  <!--a-->
@@ -1146,7 +1158,7 @@ c
 !!end
 
 !!test
-1c. Pre and Comments
+1c. Indent-Pre and Comments
 !!input
 <!--a-->  a
 
@@ -1159,7 +1171,7 @@ c
 !!end
 
 !!test
-2a. Pre and tables
+2a. Indent-Pre and tables
 !!input
  {|
  |-
@@ -1180,7 +1192,7 @@ c
 !!end
 
 !!test
-2b. Pre and tables
+2b. Indent-Pre and tables
 !!input
   {|
  |-
@@ -1196,7 +1208,7 @@ c
 !!end
 
 !!test
-3a. Pre and block tags (single-line html)
+3a. Indent-Pre and block tags (single-line html)
 !!input
  <p> foo </p>
  <div> foo </div>
@@ -1209,7 +1221,7 @@ c
 !!end
 
 !!test
-3b. Pre and block tags (pre-content on separate line)
+3b. Indent-Pre and block tags (pre-content on separate line)
 !!input
 <p>
  foo
@@ -1279,6 +1291,80 @@ c
 
 !!end
 
+###
+### HTML-pre (some to spec PHP parser behavior and some Parsoid-RT-centric)
+###
+
+!!test
+HTML-pre: 1. embedded newlines
+!!input
+<pre>foo</pre>
+
+<pre>
+foo
+</pre>
+
+<pre>
+
+foo
+</pre>
+
+<pre>
+
+
+foo
+</pre>
+!!result
+<pre>foo</pre>
+<pre>
+foo
+</pre>
+<pre>
+
+foo
+</pre>
+<pre>
+
+
+foo
+</pre>
+
+!!end
+
+!!test
+HTML-pre: 2: indented text
+!!input
+<pre>
+ foo
+</pre>
+!!result
+<pre>
+ foo
+</pre>
+
+!!end
+
+!!test
+HTML-pre: 3: other wikitext
+!!input
+<pre>
+* foo
+# bar
+= no-h =
+'' no-italic ''
+[[ NoLink ]]
+</pre>
+!!result
+<pre>
+* foo
+# bar
+= no-h =
+'' no-italic ''
+[[ NoLink ]]
+</pre>
+
+!!end
+
 ###
 ### Definition lists
 ###
@@ -1599,6 +1685,39 @@ Table / list interaction: indented table with lists in table contents
 
 !! end
 
+!!test
+Table / list interaction: lists nested in tables nested in indented lists
+!!input
+:{|
+|
+:a
+:b
+|
+*c
+*d
+|}
+
+*e
+*f
+!!result
+<dl><dd><table>
+<tr>
+<td>
+<dl><dd>a
+</dd><dd>b
+</dd></dl>
+</td>
+<td>
+<ul><li>c
+</li><li>d
+</li></ul>
+</td></tr></table></dd></dl>
+<ul><li>e
+</li><li>f
+</li></ul>
+
+!!end
+
 !! test
 Definition Lists: Nesting: Multi-level (Parsoid only)
 !! options
@@ -2787,6 +2906,22 @@ Accept empty attributes in td/th cells (td/th cells starting with leading ||)
 
 !! end
 
+!!test
+Accept "| !" at start of line in tables (ignore !-attribute)
+!!input
+{|
+|-
+| !style="color:red" | bar
+|}
+!!result
+<table>
+
+<tr>
+<td> bar
+</td></tr></table>
+
+!!end
+
 !!test
 Allow +/- in 2nd and later cells in a row, in 1st cell when td-attrs are present, or in 1st cell when there is a space between "|" and +/- 
 !!input
@@ -3970,6 +4105,20 @@ List interrupted by empty line or heading
 
 !!end
 
+!!test
+Multiple list tags generated by templates
+!!input
+{{echo|<li>}}a
+{{echo|<li>}}b
+{{echo|<li>}}c
+!!result
+<li>a
+<li>b
+<li>c</li>
+</li>
+</li>
+
+!!end
 
 ###
 ### Magic Words
@@ -4926,6 +5075,40 @@ Un-closed <onlyinclude>
 !! result
 !! end
 
+!!test
+Self-closed noinclude, includeonly, onlyinclude tags
+!!input
+<noinclude />
+<includeonly />
+<onlyinclude />
+!!result
+<p><br />
+</p>
+!!end
+
+!!test
+Unbalanced includeonly and noinclude tags
+!!input
+{|
+|a</noinclude>
+|b</noinclude></noinclude>
+|c</noinclude></includeonly>
+|d</includeonly></includeonly>
+|}
+!!result
+<table>
+<tr>
+<td>a
+</td>
+<td>b
+</td>
+<td>c&lt;/includeonly&gt;
+</td>
+<td>d&lt;/includeonly&gt;&lt;/includeonly&gt;
+</td></tr></table>
+
+!!end
+
 !! article
 Template:Includeonly section
 !! text
@@ -5405,6 +5588,45 @@ Templates: Wiki Tables: 3. td-content via multiple templates
 
 !!end
 
+!!test
+Templates: Wiki Tables: 4. Templated tags, no content
+!!input
+{{tbl-start}}
+{{tbl-end}}
+!!result
+<table>
+<tr><td></td></tr></table>
+
+!!end
+
+!!test
+Templates: Wiki Tables: 4. Templated tags, regular td-tags
+!!input
+{{tbl-start}}
+|foo
+{{tbl-end}}
+!!result
+<table>
+<tr>
+<td>foo
+</td></tr></table>
+
+!!end
+
+!!test
+Templates: Wiki Tables: 4. Templated tags, templated td-tags
+!!input
+{{tbl-start}}
+{{!}}foo
+{{tbl-end}}
+!!result
+<table>
+<tr>
+<td>foo
+</td></tr></table>
+
+!!end
+
 !!test
 Templates: Lists: Multi-line list-items via templates
 !!input