Update to MediaWiki 1.36.1

This commit is contained in:
Pierre Schmitz 2021-07-15 08:18:19 +02:00 committed by Pierre Schmitz
parent cfc8fe0a63
commit 67d3d9cad3
9221 changed files with 409252 additions and 247450 deletions

42
CREDITS
View File

@ -1,5 +1,5 @@
{{int:version-credits-summary}} <!--
MediaWiki 1.35 is a collaborative project released under the
MediaWiki 1.36 is a collaborative project released under the
GNU General Public License v2. We would like to recognize the
following names for their contribution to the product.
@ -8,6 +8,7 @@ The following list can be found parsed under Special:Version/Credits -->
== Contributors ==
<!-- Updates to this list made with maintenance/updateCredits.php -->
<!-- BEGIN CONTRIBUTOR LIST -->
* [[mw:User:ST47]]
* 4shadoww
* aalekhN
* Aaron Ball
@ -35,6 +36,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Agabi10
* Agbad
* Ahmad Sherif
* Ahmon Dancy
* Ajayrahul P
* Akinwale Alagbe
* Alangi Derick
@ -42,6 +44,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Alejandro Mery
* Aleksey Bekh-Ivanov
* AlephNull
* Alex Dean
* Alex Ezell
* Alex Ivanov
* Alex Shih-Han Lin
@ -60,11 +63,13 @@ The following list can be found parsed under Special:Version/Credits -->
* Ammar
* Ammar Abdulhamid
* Ammarpad
* Amorymeltzer
* amritsreekumar
* ananay
* Anders Wegge Jakobsen
* Andre Engels
* Andre Klapper
* Andreas P
* Andrew Bogott
* Andrew Dunbar
* Andrew Garrett
@ -75,8 +80,10 @@ The following list can be found parsed under Special:Version/Credits -->
* Andrius R
* andymw
* Angela Beesley Starling
* anjali041
* ankit
* ankur
* AntiCompositeNumber
* Antoine Musso
* Antoni Siek
* Antonio Ospite
@ -202,6 +209,7 @@ The following list can be found parsed under Special:Version/Credits -->
* David Causse
* David Chan
* David E. Narváez
* David Kamholz
* David Lynch
* David McCabe
* David Mudrák
@ -220,8 +228,10 @@ The following list can be found parsed under Special:Version/Credits -->
* didicodes
* Diederik van Liere
* divadsn
* diwanshu885
* Domas Mituzas
* Douglas Gardner
* Dov Alperin
* DPStokesNZ
* dr0ptp4kt
* Ebrahim Byagowi
@ -231,6 +241,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Eddie Greiner-Petter
* Edward Chernenko
* Edward Z. Yang
* edwintam
* Egbe Eugene
* Elisabeth Bauer
* Elliott Eggleston
@ -262,6 +273,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Federico Leva
* Felipe L. Ewald
* Fenzik Joseph
* Ferran Tufan
* Filippo Giunchedi
* firebus
* Florian Schmidt
@ -304,6 +316,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Hank Hulet
* Happy-melon
* haritha28
* Harriet Ayugi
* Harry Burt
* Hazard-SJ
* Hector A Escobedo
@ -319,6 +332,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Ian Marlier
* IijimaYun
* Ilmari Karonen
* Inductiveload
* Inez Korczyński
* IoannisKydonis
* Ireas
@ -395,7 +409,9 @@ The following list can be found parsed under Special:Version/Credits -->
* Justin Du
* Kai Nissen
* Kai_WMDE
* Kaleem Bhatti
* kaligula
* kalle
* Karsten Hoffmeyer
* Kartik Mistry
* Karun Dambiec
@ -416,6 +432,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Kunal Grover
* Kunal Mehta
* Kwan Ting Chan
* Labdajiwa
* Laurence Parry
* Lee Bousfield
* Lee Daniel Crocker
@ -439,6 +456,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Liuxinyu970226
* Ljudusika
* Lojjik Braughler
* lokal-profil
* Louperivois
* Ltrlg
* Luc Van Oostenryck
@ -447,6 +465,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Luigi Corsaro
* Luis Felipe Schenone
* LukBukkit
* Luke
* Luke Faraone
* Luke Welling
* Lupin
@ -456,6 +475,7 @@ The following list can be found parsed under Special:Version/Credits -->
* m4tx
* Madman
* madurangasiriwardena
* Maggie Epps
* Magnus Manske
* Mahuton
* mainframe98
@ -482,6 +502,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Markus Krötzsch
* Marooned
* Martin Urbanec
* Maryum Styles
* Massaf
* Máté Szabó
* Matěj Grabovský
@ -502,6 +523,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Max Semenik
* Max Sikström
* mayankmadan
* mech
* Mehmet Mert Yıldıran
* Melos
* Memmie Lenglet
@ -523,8 +545,10 @@ The following list can be found parsed under Special:Version/Credits -->
* Michał Zieliński
* Mike Horvath
* Mikhail Popov
* Mikko Miettinen
* Minh Nguyễn
* MinuteElectron
* misdre
* Misza13
* mjbmr
* moejoe0000
@ -550,6 +574,7 @@ The following list can be found parsed under Special:Version/Credits -->
* nadeesha
* Nakon
* Namit
* Nardog
* Nathan Larson
* Nathaniel Herman
* navisk13
@ -557,6 +582,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Nemo bis
* nephele
* Nicholas Pisarro, Jr
* Nicholas Ray
* Nick Jenkins
* nicoco007
* Nicolaie Constantinescu
@ -609,6 +635,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Petar Petković
* Peter Coombe
* Peter Gehres
* Peter Grassberger
* Peter Hedenskog
* Peter Ovchyn
* Peter Potrowl
@ -618,6 +645,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Petr Pchelko
* Phantom42
* Philip Tzou
* Phuedx
* physikerwelt (Moritz Schubotz)
* Pierre Boutet
* PieRRoMaN
@ -646,6 +674,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Quim Gil
* Rafid Aslam
* rahul21
* rail
* Raimond Spekking
* Ramunas Geciauskas
* Remember the dot
@ -690,6 +719,7 @@ The following list can be found parsed under Special:Version/Credits -->
* ryan10145
* S Page
* Sahajsk`
* sahil
* Saint Johann
* Sakretsu
* Salvatore Ingala
@ -710,6 +740,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Sean Pringle
* Seb35
* Sebastian Brückner
* Sébastien Beyou
* Sébastien Santoro
* Sergio Santoro
* Serhio Magpie
@ -725,6 +756,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Shinjiman
* shirayuki
* Shreyas Minocha
* shubham656
* Sidhant Gupta
* Siebrand Mazeland
* Simeon Dahl
@ -735,10 +767,10 @@ The following list can be found parsed under Special:Version/Credits -->
* Solitarius
* Sorawee Porncharoenwase
* Søren Løvborg
* Southparkfan
* Soxred93
* SQL
* Srikanth Lakshmanan
* ST47
* Stanislav Malyshev
* Stefano Codari
* Steinsplitter
@ -754,6 +786,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Storm1seven
* Str4nd
* Strainu
* STran
* Subin Siby
* Subramanya Sastry
* suecarmol
@ -806,6 +839,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Tpt
* Trevor Parscal
* Trey Jones
* tsepothoabala
* TyA
* Tychay
* Tyler Anthony Romeo
@ -816,6 +850,7 @@ The following list can be found parsed under Special:Version/Credits -->
* UltrasonicNXT
* Umherirrender
* utkarsh95
* Vadim Kovalenko
* Valerio Bozzolan
* Van de Bugger
* Varun Das
@ -832,6 +867,7 @@ The following list can be found parsed under Special:Version/Credits -->
* vishnu
* Vitaliy Filippov
* Vivek Ghaisas
* vladshapik
* vlakoff
* Volker E
* Waldir Pimenta
@ -845,6 +881,7 @@ The following list can be found parsed under Special:Version/Credits -->
* XP1
* Yaron Koren
* Yaroslav Melnychuk
* yash9265
* Yesid Carrillo
* Yifei He
* Yogesh K S
@ -854,6 +891,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Yuriy Shnitkovskiy
* Yusuke Matsubara
* Yuvi Panda
* Zabe
* Zachary Hauri
* Zak Greant
* Željko Filipin

1788
HISTORY

File diff suppressed because it is too large Load Diff

View File

@ -5,19 +5,22 @@ Installing MediaWiki
Starting with MediaWiki 1.2.0, it's possible to install and configure the wiki
"in-place", as long as you have the necessary prerequisites available.
Required software as of MediaWiki 1.35.0:
Required software as of MediaWiki 1.36.0:
* Web server with PHP 7.3.19 or higher, plus the following extensions:
** ctype
** dom
** fileinfo
** iconv
** intl
** json
** libxml
** mbstring
** xml
** xmlreader
* A SQL server, the following types are supported
** MySQL 5.5.8 or higher
** PostgreSQL 9.2 or higher
** PostgreSQL 9.4 or higher
** SQLite 3.8.0 or higher
MediaWiki is developed and tested mainly on Unix/Linux platforms, but should

File diff suppressed because it is too large Load Diff

881
RELEASE-NOTES-1.36 Normal file
View File

@ -0,0 +1,881 @@
= MediaWiki 1.36 =
== MediaWiki 1.36.1 ==
This is a security and maintenance release of the MediaWiki 1.36 branch.
=== Changes since MediaWiki 1.36.0 ===
* (T283942) DatabaseInstaller.php: Only run core schema file if specified table
doesn't already exist.
* (T247223) Optimise MessageCache::isMainCacheable() for the single-message
case.
* (T283244) JavaScriptMinifer: Fix handling of "delete" as object property.
* (T284391) Fix SkinModule to correctly prepend remote path on document root
installs.
* (T235554) Disable DEFER_SET_LENGTH_AND_FLUSH headers to avoid HTTP errors.
* (T278579) Don't send headers on ob_end_clean().
* (T285287) MultiHttpClient: Replace PHP version check with defined().
* (T280226, CVE-2021-35197) SECURITY: Prevent blocked users from purging pages.
== MediaWiki 1.36.0 ==
=== Changes since MediaWiki 1.36.0-rc.0 ===
* (T248481) rdbms: Use server time in
DatabaseMysqlBase::getLagFromPtHeartbeat().
* (T281549) WebInstaller: Don't show the announce-l subscribe checkbox for now.
* (T264214) Follow-ups for UserGroupManager.
* (T282280) resourceloader: Fix path-only URLs in wiki modules when script path
is docroot.
* (T281972) UserIdentityValue: Introduce convenience static factory methods.
* (T230428) Make page_is_redirect and page_is_new unsigned.
* (T280292) Legacy feature should not load thumbnail style rules (only layout).
* (T283247) Freenode -> Libera per wikimedia moving from freenode to libera.
* (T280270) composer: Lock Parsoid version to specific 0.13.0 release.
* (T142663) Add extension.json merge strategy "provide_default".
* (T283540) HookContainer: Fix normalization of callback for static handler.
* (T283464) registration: Fix array order for array_replace_recursive merge
strategy.
* (T283539) Interwiki: Fix calling "onInterwikiLoadPrefix" hook.
* (T282594) Timeless: Re-branch to 40eb3dad1for REL1_36.
== MediaWiki 1.36.0-rc.0 ==
== Upgrading notes for 1.36 ==
Don't forget to always back up your database before upgrading!
See the file UPGRADE for more detailed per-version upgrade instructions from the
oldest supported upgrading version, MediaWiki 1.27.
Some specific notes for MediaWiki 1.36 upgrades are below:
* MediaWiki 1.36 now requires the PHP internationalization extension (commonly
referred to as Intl, ext-intl, or php-intl).
* The MediaWiki:Autoblock_whitelist block exemption control has been moved to
MediaWiki:Block-autoblock-exemptionlist. If you use this feature, please move
the MediaWiki:Autoblock_whitelist page.
* (T275334) $wgExtensionFunctions is sometimes used to change configuration
settings. This is not safe; extension functions are run relatively late, some
services are already initialized by that point and so they use the old
configuration. Changes in 1.36 make this kind of breakage even more common.
You can use the MediaWikiServices hook instead. (In the future there might be
a dedicated hook for configuration changes.)
For notes on 1.35.x and older releases, see HISTORY.
=== Configuration changes for system administrators in 1.36 ===
The MediaWiki update script, maintenance/update.php, used to accept `--nopurge`
as an option to prevent clearing caches stored in the database during upgrade.
This is no longer encouraged, and the option has been removed.
==== New configuration ====
* (T256001) $wgManualRevertSearchRadius This setting controls a new feature
that marks edits as reverts if they restore the page to an exact previous
state. This configuration variable sets the maximum number of revisions of a
page that will be checked against every new edit. Set this to 0 to disable the
feature entirely.
* (T244058) $wgOldRevisionParserCacheExpireTime — This setting was added to
control caching of ParserOutput for old (non-current) revisions.
* (T265263) $wgRememberMe - This setting configures the "remember me" checkbox
on account log-in systems via RememberMeAuthenticationRequest.
* (T157145) $wgSkinMetaTags This setting lets sysadmins configure skins that
support meta tags. These tags make sharing of MediaWiki pages on a variety of
social platforms more contentful and thus useful.
* (T280944) $wgIncludejQueryMigrate - This setting lets sysadmins disable the
jQuery Migrate plugin. It has been enabled by default since MediaWiki 1.27.
In future releases it will be disabled by default.
==== Changed configuration ====
* $wgLogos This setting selects the logo shown on the site. The default value
for the site logo, which is shown in an install if you have not set one, will
now be the new logo of MediaWiki.
* (T274695) $wgAjaxEditStash — This setting, to disable the edit stashing
feature when users start writing an edit summary, has been deprecated. In
future releases, this feature will always be enabled.
* $wgUploadStashScalerBaseUrl This setting, to enable remote on-demand media
scaling, was deprecated. Use the `thumbProxyUrl` setting in $wgLocalFileRepo
instead.
* $wgSlaveLagWarning and $wgSlaveLagCritical These settings have been renamed,
to $wgDatabaseReplicaLagWarning & $wgDatabaseReplicaLagCritical respectively.
The former configuration variable names are deprecated, but will be used as
the fall back if they are still set, and remain temporarily available for
extensions which try to read them.
* $wgWANObjectCaches - The "coalesceKeys" option was removed without deprecation
and replaced by a new "coalesceScheme" option, set to "hash_stop" by default.
If you use Dynomite, then set the new "coalesceKeys" option to "hash_tag". The
"cluster" and "mcrouterAware" options were also removed without deprecation.
Use "broadcastRoutingPrefix" instead.
==== Removed configuration ====
* $wgUseTwoButtonsSearchForm — This setting, deprecated in 1.35, has been
removed.
* $wgAllowImageMoving — This setting, deprecated in 1.35, has been removed. Use
group permission settings instead. For example, to prevent sysops from
moving files, set `$wgGroupPermissions['sysop']['movefile'] = false;`
* $wgExtNewTables, $wgExtNewFields, $wgExtNewIndexes, $wgExtPGNewFields,
$wgExtPGAlteredFields, $wgExtModifiedFields — These settings were removed.
They became obsolete after 1.17 overhauled the database updater, but were kept
for backwards compatibility. The LoadExtensionSchemaUpdates hook should be
used instead.
* $wgParserConf - This setting, deprecated in 1.35, has been removed. The last
use of this setting was for pre-processor configuration, which was deprecated
in 1.34 and removed in 1.35.
* $wgEnableRestAPI - This setting, ignored since 1.35, has been removed.
* $wgPagePropsHaveSortkey This temporary setting has been removed, along with
the schema change upgrade path it controlled. If your site is still using it,
meaning you have not yet applied the `pp_sortkey` schema change from 1.24, you
must now apply it before upgrading.
* The deprecated password policies PasswordCannotMatchBlacklist and
PasswordNotInLargeBlacklist were removed. Please use
PasswordCannotMatchDefaults and PasswordNotInCommonList respectively instead.
=== New user-facing features in 1.36 ===
* The logo of MediaWiki has changed. This means that the "Powered By MediaWiki"
button shown in the skin footer will be different.
* All HTML5 named entities are now accepted in wikitext.
* (T106263) The file description page's alternate sizes now include 2048px.
=== New developer features in 1.36 ===
* Parser test files can now declare a dependency on a specific extension being
loaded, not just on the presence of a certain extension tag hook. This is a
better fit for extensions like TimedMediaHandler, which affect the output but
don't register parser hooks. Use `extension:Foo` in the `!! hooks` section of
your parser test file to declare a dependency on the `Foo` extension being
loaded.
* To expose code previously present in SpecialBlock/SpecialUnblock to other
parts of the code, or to extensions, the new BlockUser and UnblockUser command
objects were added. Use the BlockUserFactory and UnblockUserFactory services
to create them.
* The hook UsersPagerDoBatchLookupsHook takes now a \Wikimedia\Rdbms\IDatabase,
instead of \Wikimedia\Rdbms\DBConnRef, as the first parameter.
* MediaHandlers can now customize the formatting of the metadata they emit by
over-riding MediaHandler::formatTag( $key, $value ). The default for unknown
tags is numeric formatting; non-EXIF tags which are non-numeric should always
use this method to specify the desired formatting.
* The new 'title' type can be used to validate action API and REST API inputs.
* The new ArticleParserOptions hook allows customizing the parser options used
to parse wikitext for an article, based on user preferences, title, etc.
* The new 'raw' type can be used to validate action API inputs. It bypasses the
Unicode NFC normalization done on inputs of type 'string', so it more suitable
when the input is binary or may contain deprecated Unicode sequences or
characters (such as U+2001) that should be passed unmodified.
* (T260330) A new abstraction for running shell commands has been introduced,
called BoxedCommand. A BoxedCommand object can be obtained with
MediaWikiServices::getInstance()->getCommandFactory()->createBoxed().
* ResourceLoader modules can now mark themselves as ES6-only by setting
`'es6' => true` in their module definition. ES6-only modules will not be
executed in browsers that don't support ES6, such as IE11.
=== External library changes in 1.36 ===
==== New external libraries ====
* Added wikimedia/minify 2.2.2.
* Added wikimedia/request-timeout 1.1.0.
* Added wikimedia/shellbox 1.0.4.
* Added WVUI 0.1.0.
==== Changed external libraries ====
* Updated composer/semver from 1.5.1 to 3.2.4.
* Updated guzzlehttp/guzzle from 6.5.4 to 7.2.0.
* Updated jQuery from v3.4.1 to v3.6.0.
* Updated jQuery Migrate from v3.1.0 to v3.3.2.
* Updated jquery.client from 2.0.2 to 3.0.0.
* Updated OOUI from 0.39.3 to 0.41.3.
* Updated pear/mail_mime from 1.10.8 to 1.10.9.
* Updated pear/net_smtp from 1.9.1 to 1.9.2.
* Updated pimple/pimple from 3.3.0 to 3.3.1.
* Updated wikimedia/at-ease from 2.0.0 to 2.1.0.
* Updated wikimedia/cldr-plural-rule-parser from 1.0.0 to 2.0.0.
* Updated wikimedia/common-passwords from 0.2.0 to 0.3.0.
* Updated wikimedia/composer-merge-plugin from 1.4.1 to 2.0.1.
* Updated wikimedia/html-formatter from 1.0.2 to 3.0.1.
* Updated wikimedia/ip-set from 2.1.0 to 3.0.0.
* Updated wikimedia/ip-utils from 1.0.0 to 3.0.2.
* Updated wikimedia/less.php from 3.0.0 to 3.1.0.
* Updated wikimedia/object-factory from 2.1.0 to 3.0.0.
* Updated wikimedia/php-session-serializer from 1.0.7 to 2.0.0.
* Updated wikimedia/remex-html from 2.2.0 to 2.2.2.
* Updated wikimedia/utfnormal from 2.0.0 to 3.0.2.
* Updated wikimedia/wait-condition-loop from 1.0.1 to 2.0.1.
* Updated wikimedia/xmp-reader from 0.7.0 to 0.8.1.
===== Changed development-only external libraries =====
* Updated composer/spdx-licenses from 1.5.3 to 1.5.4.
* Updated doctrine/dbal from 2.10.2 to 3.0.0.
* Updated doctrine/sql-formatter from 1.1.0 to 1.1.1.
* Updated mediawiki/mediawiki-phan-config from 0.10.2 to 0.10.6.
* Updated monolog/monolog from 1.25.3 to 2.2.0.
* Updated nikic/php-parser from 4.4.0 to 4.10.2.
* Updated psy/psysh from 0.10.4 to 0.10.5.
* Updated seld/jsonlint from 1.7.1 to 1.8.3.
* Updated symfony/yaml from ~3.4|~4.3|~5.0.5 to ~3.4|~5.1.
* Updated wikimedia/testing-access-wrapper from 1.0.0 to 2.0.0.
==== Removed external libraries ====
* The html5shiv library has been removed, as support for Internet Explorer 8 has
been dropped.
* The wikimedia/avro suggested development-only library has been removed, as the
support for logging in Avro format has been dropped.
=== Bug fixes in 1.36 ===
* (T190285) ApiEditPage module used to switch 'undo' and 'undoafter' parameters,
if it founds you reversed them (based on assumption that higher revision ID
indicates a later revision). The assumption is not always true, and is
hindering proper edit undoing in some cases, hence the logic has been removed.
Reversing the parameters will now lead to edit conflict or undefined behavior.
* (T263340) In history merging, pages with a content model that does not support
redirects will now be recorded as deleted if no revision is being left in the
source page (that's if all revisions of the page have been merged to another).
=== Action API changes in 1.36 ===
* (T269636) `Access-Control-Max-Age` was added to the default list of headers
allowed for cross-origin API requests ($wgAllowedCorsHeaders).
* (T258108) Accounts with the 'bot' right no longer have pages automatically
added to the watchlist when making API edits, regardless of their preferences.
This is to reduce the size of the watchlist data in the database. To add API
bot edits to the watchlist, explicitly set the 'watch' option.
=== Languages updated in 1.36 ===
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 Phabricator reports.
* (T258975) Added a Latin/Cyrillic script converter for the Talysh language.
* (T245359) Split Bali script locale from "ban" (Balinese) (ban-bali).
* (T264582) Added language support for Madurese (mad).
* (T259330) Added language support for Mara (mrh).
* (T263968) Added language support for Nias (nia).
* (T270365) Added language support for Tyap (kcg).
* (T276745) Added language support for Wayuu (guc).
=== Breaking changes in 1.36 ===
* Grade C (non-JavaScript) support for Internet Explorer 8 has been dropped.
* (T249459) wfIsBadImage(), deprecated in 1.34, has been removed.
* (T176526) EditPage::getContextTitle() will now throw an exception if a context
title was not set using setContextTitle(). Previously, this mis-use would only
cause a deprecation warning to be emitted.
* The DeferredStringifier class, deprecated since 1.31, was removed.
* Multiple methods that fell back to the $wgUser global variable were
individually hard deprecated previously. The following have now been removed:
- ApiTestCase::doLogin
- Article::doDeleteArticle
- Article::doDeleteArticleReal
- Article::getComment
- Article::getCreator
- Article::getUser
- Article::getUserText
- Article::insertProtectNullRevision
- File::delete
- File::recordUpload
- ForeignDBFile::delete
- ForeignDBFile::recordUpload
- LocalFile::delete
- LocalFile::deleteOld
- LocalFile::recordUpload
- PageArchive::undelete
- RecentChange::markPatrolled
- Title::getUserPermissionsErrors
- Title::quickUserCan
- Title::userCan
- WebRequest::getLimitOffset
- WikiPage::doDeleteArticle
- WikiPage::insertProtectNullRevision
* The SpecialPageFactory class, deprecated in 1.32, has been removed. Use the
SpecialPageFactory service instead.
* Multiple methods previously had optional User parameters, with fallbacks
to the $wgUser global variable. Not passing a User to those methods was
previously hard deprecated, and support for not passing a User has now
been removed:
- ArchivedFile::userCan
- File::userCan
- FileDeleteForm::__construct
- FileDeleteForm::doDelete
- LocalFileDeleteBatch::__construct
- LogEventsList::getExcludeClause (only needed for the 'user' audience)
- LogEventsList::userCan
- LogEventsList::userCanBitfield
- LogEventsList::userCanViewLogType
- LogPage::addEntry (also accepts user id instead)
- OldLocalFile::userCan
- PatrolLog::record
- Title::getNotificationTimestamp (though the entire method is deprecated)
- WikiPage::getComment (only needed for the FOR_THIS_USER audience)
- WikiPage::getCreator (only needed for the FOR_THIS_USER audience)
- WikiPage::getUser (only needed for the FOR_THIS_USER audience)
- WikiPage::getUserText (only needed for the FOR_THIS_USER audience)
* The following hooks have been removed:
- APIQueryInfoTokens
- APIQueryRecentChangesTokens
- APIQueryRevisionsTokens
- APIQueryUsersTokens
- ApiTokensGetTokenTypes
* LogEventsList::typeAction previously accepted an optional right parameter, and
checked if the context user ($wgUser) had that right. Passing a right was hard
deprecated in 1.35, and support for passing a right has now been removed.
* WikiPage::doDeleteArticleReal previously accepted an optional user as its
fifth parameter, and fell back to $wgUser if not user was provided. The
signature changed to have the user as the second parameter, and the old
signature was hard deprecated in 1.35. Support for the old signature has now
been removed.
* User::addNewUserLogEntry, deprecated since 1.27, was removed.
* As part of refactoring the EditPage class, EditPage::setPreloadedContent,
which had no known callers was removed entirely. Additionally, the following
public methods were made private:
- ::extractSectionTitle
- ::getSummaryInputWidget
- ::noSuchSectionPage
- ::initialiseForm
* EditPage::matchSpamRegex and ::matchSummarySpamRegex, deprecated in 1.35,
were removed. Use the SpamChecker service instead.
* The global function `wfWaitForSlaves`, deprecated in 1.27 and hard-deprecated
in 1.35, has been removed. Use LBFactory::waitForReplication() instead.
* Calling Action::factory() with null as the first parameter, rather than a
string, was deprecated in 1.35 and support was now removed.
* Calling Action::factory() with an object that wasn't an Article as the second
parameter was deprecated in 1.35 and support was now removed.
* The global variable $wgMemc, deprecated since 1.35, has been removed. Usage
should generally be migrated to WANObjectCache, or if you really need the
internal object, use ObjectCache::getLocalClusterInstance instead.
* The preprocessDump.php maintenance script was removed.
* CategoryFinder, which was deprecated in 1.31 and hard-deprecated in 1.35,
has been removed.
* GenderCache::singleton(), which was deprecated in 1.28 and hard-deprecated
in 1.35, has been removed.
* Sanitizer::escapeId(), deprecated in 1.30, has been removed.
* Direct invocation of Parser::__construct() (instead of via a ParserFactory)
now throws an exception; support has also been removed for several
deprecated variants on the arguments passed to Parser::__construct.
Direct invocation of Parser::__construct was deprecated in 1.34.
* Parser::setFunctionTagHook(), deprecated in 1.35, has been removed.
* The following properties of Parser, deprecated in 1.35, have been made
private:
- $mTagHooks - use Parser::getTags()
- $mFunctionHooks - use Parser::getFunctionHooks()
- $mOutput - use Parser::getOutput()
- $mPreprocessor - use Parser::getPreprocessor()
* The ParserBeforeTidy hook, deprecated in 1.35, has been removed.
* The ParserBeforeTidy, ParserBeforeStrip, and ParserAfterStrip hooks,
deprecated in 1.35, have been removed.
* All methods of MWTidy except for MW::tidy() have been removed. These were each
either marked as @internal or deprecated in 1.35.
* (T248062) Mixins `.background-image-svg()` and `.background-image-svg-quick()`
(provided by mediawiki.mixins.less), which have been deprecated since 1.35,
have now been removed. MediaWiki no longer supports any browser which would
require this SVG-fallback PNG support, so you can simply use the regular CSS
`background-image:` declaration instead.
* The ResourceLoader module `mediawiki.legacy.oldshared` and its file
'oldshared.css', deprecated since 1.35 has been removed (T248357).
* `ResourceLoader::__construct` now requires a Config parameter. The optional
nature of this parameter was deprecated in 1.34.
* The LinkBegin and LinkEnd hooks, deprecated in 1.28, have been removed. You
can instead use the HtmlPageLinkRendererBegin and HtmlPageLinkRendererEnd
hooks, respectively.
* The EmailUser hook passes its fifth param, $error, by reference, to allow
hook handlers to add error messages, indicate that they have sent the email
instead of core, etc. Setting the parameter to something other than a
Status object, true, false, an empty string, an array, or a MessageSpecifier,
object, which had been deprecated in 1.29, is no longer supported, and now
results in an MWException being thrown.
* Skin::getDynamicStylesheetQuery(), deprecated in 1.32, has been removed. You
should use action=raw&ctype=text/css directly.
* Skin::makeI18nUrl(), deprecated in 1.35, has been removed.
* The following User methods, deprecated and moved to BlockManager in 1.34, were
removed:
- ::isDnsBlacklisted
- ::inDnsBlacklist
- ::isLocallyBlockedProxy
- ::trackBlockWithCookie
* Support for v1 of the parser tests file format has been removed; it was
deprecated in 1.35. (T174199)
* SpecialUnblockUser::processUIUnblock() now returns a Status object instead of
an array of messages or a boolean value. This function was also marked as
@internal and is no longer safe to call it publicly.
* mw.Title.getDotExtension() from the 'mediawiki.Title' module was removed
without deprecation. You should use mw.Title.getExtension() and prepend the
dot if need be.
* Profiler::getTemplated and Profiler::setTemplated, deprecated in 1.34, have
been removed.
* DatabaseMysqlBase now requires MySQL version 5.6.4+ when "lagDetectionMethod"
is set to "pt-heartbeat".
* Removed HookContainer::getOriginalHooksForTest() without deprecation. This
method was introduced in 1.35 for internal use, and appears unused outside of
MediaWiki core.
* ParserCache::__construct() now requires three parameters.
* Message->getFormat(), deprecated in 1.29, has been removed.
* Support for passing Article to ParserCache::get, deprecated in 1.35, has been
removed.
* ParserCache::singleton(), deprecated in 1.30, has been removed.
* DatabaseBlock::deleteIfExpired and ::fromMaster, deprecated in 1.35, have been
removed.
* Some deprecated AbstractBlock methods have been removed:
- ::prevents, deprecated in 1.33
- ::shouldTrackWithCookie, deprecated in 1.34
- ::getBlocker, deprecated in 1.35
- ::setBlocker, deprecated in 1.35
- ::getBlockErrorParams, deprecated in 1.35
* Multiple DatabaseBlock methods dealing with cookies, deprecated in 1.34,
have been removed:
- ::setCookie
- ::clearCookie
- ::getCookieValue
- ::getIdFromCookieValue
- ::shouldTrackWithCookie
* The public static callback function SpecialUnblock::processUIUnblock has been
removed. This method was for internal use only, and appears unused outside of
MediaWiki core.
* ChangeTags::truncateTagDescription, deprecated in 1.35, has been removed.
* Deprecated null fallbacks in PasswordReset constructor have been removed.
* User::isEveryoneAllowed and User::getAllRights, deprecated in 1.34, has been
removed.
* The following methods of the UserGroupMembership class, deprecated in 1.35,
has been removed:
- ::initFromRow
- ::newFromRow - use UserGroupManager::newGroupMembershipFromRow
- ::selectFields - use UserGroupManager::getQueryInfo
- ::delete - use UserGroupManager::removeUserFromGroup
- ::insert - use UserGroupManager::addUserToGroup
- ::purgeExpired - use UserGroupManager::purgeExpired
- ::getMembershipsForUser - use UserGroupManager::getUserGroupMemberships
- ::getMembership - use UserGroupManager::getUserGroupMemberships
* The public static callback function SpecialBlock::validateTargetField has been
removed. This method was for internal use only, and appears unused outside of
MediaWiki core.
* The public static callback function SpecialUploadStash::tryClearStashedUploads
has been removed. This method was for internal use only, and appears unused
outside of MediaWiki core.
* SpecialComparePages::showDiff() ::revOrTitle(), ::checkExistingTitle(), and
::checkExistingRevision() were marked as @internal to allow for breaking
changes. They are no longer safe to call. The methods were unused outside of
MediaWiki core.
* Each special page within core now uses service injection via it constructor.
When extending these special pages, a call to the grandparent constructor
(`SpecialPage::__construct()`) in the sub-class would now break the derived
special page, as the fallback code in the parent constructor cannot set the
services as needed. Be sure to call the parent constructor when extending
core special pages. Extending core's special pages is not part of the stable
interface, and should generally be avoided.
* Language::getExtraUserToggles and ::viewPrevNext, deprecated in 1.34, have
been removed.
* StreamFile::send404Message and ::parseRange, deprecated in 1.34, have been
removed.
* SVGMetadataExtractor class, deprecated in 1.34, has been removed.
* ProcessCacheLRU class, deprecated in 1.32, has been removed.
* wfForeignMemcKey(), deprecated in 1.35, has been removed.
* LoadBalancer::safeWaitForMasterPos(), deprecated in 1.34, has been removed.
* JobQueue::factory() now requires its `idGenerator` option. The optional
nature of this option was deprecated in 1.35.
* ApiFeedRecentChanges::getFeedObject has been changed to private, and appears
unused outside of MediaWiki core.
* Skin::subPageSubtitle() has been changed to private method. Callers should
use Skin::prepareSubtitle().
* RevisionDeleter::checkRevisionExistence was removed without deprecation.
It had no known callers.
* wfForeignMemcKey() and wfMemcKey(), deprecated in 1.35, have been removed.
* MediaWiki now also requires the php-intl extension.
* BotPassword::save() now returns a Status object for the result rather than
a bool.
* The methods in CoreTagHooks have been marked @internal and type hints have
been added. The methods appeared to be unused outside of MediaWiki core.
* SquidPurgeClient and SquidPurgeClientPool, deprecated since 1.35, have been
removed.
* Several methods on WikiPage will now throw an exception when called on a
WikiPage instance that where constructed on a title that does not refer to a
proper page (but rather a special page or interwiki link). The behavior was
previously undefined and could in some cases lead to data corruption. Affected
methods are: getId(), insertOn(), newPageUpdater(), doUpdateRestrictions(),
doDeleteArticleReal(), doRollback(), and doEditContent().
* The ParserTestRunner no longer invokes the ParserTestTables hook. Instead, it
clones all database tables before running tests, like MediaWikiIntegrationTest
does. If an extension was mis-using the hook to *exclude* tables from the
clone, that will no longer occur, and tests may fail.
* The following classes, which were only loaded for tests and had no uses found
in public MediaWiki-related git, were removed:
- MockWebRequest
- UserWrapper
* Passing Title as a second parameter to RevisionStore::getPreviousRevision and
getNextRevision, hard deprecated since 1.31, was prohibited.
* (T275619) Maintenance::hasOption and Maintenance::getOption now behave as
documented and are not altered by previous calls to these methods.
* The internal class FirejailCommand was removed.
* Command::execute() now returns a Shellbox\Command\UnboxedResult instead of a
MediaWiki\Shell\Result. Any type hints should be updated.
* WikiPage::$mIsRedirect was removed.
* ObjectCache::detectLocalServerCache(), deprecated in 1.35, was removed.
* The following functions from the Title class have been removed:
- countRevisionsBetween
- getAuthorsBetween
* The PageProps class was converted to a service. PageProps::overrideInstance
was removed, and MediaWikiServices::redefineService should be used
instead.
* Support for creating a MediaWikiTitleCodec object without the InterwikiLookup
and NamespaceInfo services, deprecated in 1.34, was removed. Note that the
MediaWikiTitleCodec class is not @newable or @stable to create, and should
be retrieved from MediaWikiServices instead.
* The $wgContLang variable, deprecated in 1.32, was removed. You can instead use
MediaWikiServices::getInstance()->getContentLanguage().
* User::clearAllNotifications(), hard deprecated in 1.35, was removed. Use
WatchlistManager::clearAllUserNotifications() instead.
* DatabaseBlock::getBlocker can return any UserIdentity instance, not just User.
* MediaWiki::triggerJobs(), deprecated in 1.34, was removed.
* The following Article methods, deprecated in 1.35, were removed:
- checkFlags
- checkTouched
- clearPreparedEdit
- doDeleteUpdates
- doEditUpdates
- doPurge
- doViewUpdates
- exists
- followRedirect
- getAutoDeleteReason
- getCategories
- getContentHandler
- getContentModel
- getContributors
- getDeletionUpdates
- getHiddenCategories
- getId
- getLatest
- getLinksTimestamp
- getMinorEdit
- getOldestRevision
- getRedirectTarget
- getRedirectURL
- getRevision
- getTouched
- getUndoContent
- hasViewableContent
- insertOn
- insertRedirect
- insertRedirectEntry
- isCountable
- isRedirect
- loadFromRow
- loadPageData
- lockAndGetLatest
- makeParserOptions
- pageDataFromId
- pageDataFromTitle
- prepareContentForEdit
- protectDescription
- protectDescriptionLog
- replaceSectionAtRev
- replaceSectionContent
- setTimestamp
- shouldCheckParserCache
- supportsSections
- triggerOpportunisticLinksUpdate
- updateCategoryCounts
- updateIfNewerOn
- updateRedirectOn
- updateRevisionOn
- doUpdateRestrictions
- updateRestrictions
- doRollback
- commitRollback
- generateReason
* The monolog-based logging system has dropped the Avro format. Because of this,
the AvroFormatter class and the AvroValidator utility class have been removed
without deprecation.
* AbstractBlock::$mReason, deprecated in 1.34, was removed.
Use AbstractBlock::getReasonComment and AbstractBlock::setReason instead.
=== Deprecations in 1.36 ===
* (T278026) The DB_MASTER constant has been deprecated in favour of DB_PRIMARY.
* (T245963) User::getGrantName() is now hard deprecated and will be removed in
a subsequent release. Use MWGrants::grantName() instead.
* wfIncrStats() is now deprecated. Use MediaWikiServices::getInstance()
->getStatsdDataFactory()->updateCount() instead.
* WikiPage::doEditContent() is now deprecated. Use
WikiPage::doUserEditContent() instead. Note that doEditContent() was also
deprecated in 1.32 for unrelated reasons and doUserEditContent() is
deprecated for other reasons, however, using doUserEditContent() is
recommended over using doEditContent().
* WikiPage::doUserEditContent() is now deprecated. Use
PageUpdater::saveRevision instead. Note that the new method expects callers
to take care of checking EDIT_MINOR against the minoredit right, and to apply
the autopatrol right as appropriate.
* LocalFile::recordUpload2, soft deprecated in 1.35, now emits deprecation
warnings. Use ::recordUpload3 instead.
* Constructing a new instance of the ParserOptions class without providing
a User object, which falls back to the global $wgUser, is now deprecated.
* The User class, which was marked as @newable in 1.35, is no longer newable,
meaning that it is no longer safe to manually call the constructor via
`new User`. Instead, use the UserFactory service. Additionally, the
following static constructor methods were deprecated in favor of using the
UserFactory service:
- User::newFromName
- User::newFromId
- User::newFromActorId
- User::newFromIdentity
- User::newFromAnyId
- User::newFromConfirmationCode
* The following User methods have been hard deprecated in favor of the new
UserEditTracker service:
- User::getFirstEditTimestamp
- User::getLatestEditTimestamp
* The confusingly-named User->isLoggedIn() method has been deprecated in favour
of the method it wraps, User->isRegistered().
* Use of the `preprocessor=Preprocessor_DOM` option in parser test files has
been deprecated. Preprocessor_DOM was removed in 1.35.
* ParserOptions::setTidy() has been deprecated. It has had no effect since
1.35.
* Sanitizer::escapeIdReferenceList() has been deprecated; it will eventually
be made private to the class, as it appears to have no uses outside the
Sanitizer class.
* Sanitizer::hackDocType() is deprecated; it will eventually be made private.
* Skin::getIndicatorsHTML() is deprecated. The functionality can be retained
by reimplementing the method using the raw indicators data from
OutputPage::getIndicators.
* Skin::makeVariablesScript() has been deprecated. Use
ResourceLoader::makeInlineScript() instead.
* SpecialPageFactory::getRestrictedPages() has been deprecated.
Use SpecialPageFactory::getUsablePages() instead.
* Title::nameOf() is deprecated; use Title::newFromID()->getPrefixedDBkey()
instead.
* DatabaseBlock::insert, DatabaseBlock::update, DatabaseBlock::purgeExpired and
DatabaseBlock::delete are deprecated. Use DatabaseBlockStore::insertBlock,
DatabaseBlockStore::updateBlock, DatabaseBlockStore::purgeExpiredBlocks and
DatabaseBlockStore::deleteBlock instead.
* SpecialBlock::getTargetAndType and AbstractBlock::parseTarget are deprecated.
Call BlockUtils::parseBlockTarget instead.
* SpecialUnblock::processUnblock was deprecated - use UnblockUserFactory
service instead.
* Deprecated MediaWikiIntegrationtestCase::removeTemporaryHook() in favor of
MediaWikiIntegrationtestCase::clearHook().
* Skin::getSearchLink(), also exposed as 'searchaction' option in SkinTemplate,
has been deprecated. Use Title or SpecialPage methods directly.
* Skin::getAllowedSkins and ::getSkinNames have been deprecated. Use their
respective equivalents in SkinFactory instead.
* The RollbackComplete hook has been deprecated, use the PageSaveComplete hook
instead.
* Skin::makeUrl() has been deprecated. Title methods should be used instead.
* Skin::privacyLink(), Skin::disclaimerLink() and Skin::aboutLink() have been
deprecated. Please use Skin::footerLink() instead.
* Skin::getLogo() has been deprecated. Use ResourceLoaderSkinModule instead.
* The module `mediawiki.toc.styles` has been replaced by
ResourceLoaderSkinModule. If you are having problems styling table of contents
ensure you have an updated skin.
* Skin::mainPageLink() has been deprecated. Use LinkRenderer service instead.
* BaseTemplate::getToolbox() method has been hard deprecated. The toolbox data
is now available in a sidebar data array which you can get from any class
that's extending QuickTemplate class.
* Constructing a DefaultPreferencesFactory, LinkHolderArray or PasswordReset
without a $hookContainer parameter is deprecated.
* Autopromote class, soft deprecated since 1.35, now emits deprecation warnings.
Use UserGroupManager instead.
* SpecialBlock::canBlockEmail has been deprecated. Please use
BlockPermissionChecker::checkEmailPermissions instead.
* SpecialBlock::checkUnblockSelf has been deprecated. Please use
BlockPermissionChecker::checkBlockPermissions instead.
* SpecialBlock::parseExpiryInput was deprecated - use
BlockUser::parseExpiryInput instead.
* SpecialBlock::validateTarget has been deprecated, use BlockUtils instead.
* SpecialBlock::validateTargetField has been deprecated for external use,
use BlockUtils instead.
* SpecialPage::getLanguageConverter has been deprecated, use
LanguageConverterFactory::getLanguageConverter() directly.
* ParserCache::getKey has been deprecated. Use ParserCache::getMetadata and
ParserCache::makeParserOutputKey instead.
* The PHPUnit4And6Compat class, used to provide compatibility with PHPUnit 4,
was removed. MediaWiki support for PHPUnit 4 ended with the removal of HHVM
support.
* The PHPUnit6And8Compat class, used to provide compatibility with PHPUnit 6,
was removed without deprecation. This class was introduced during the
upgrade to PHPUnit 8, but never used.
* MediaWikiIntegrationTestCase::assertType, hard-deprecated in 1.35 due to
incompatibility with PHPUnit 8, was removed.
* ParserCache::getETag has been deprecated, instead build suitable etag
explicitly.
* The following functions from the Language class have been hard deprecated
and will be removed in a subsequent release:
- findVariantLink
- convertTitle
- updateConversionTable
- commafy
* The following functions from the Title class have been hard deprecated:
- getPreviousRevisionID
- getNextRevisionID
- getEarliestRevTime
* The following functions from the User class have been hard deprecated:
- getDefaultOptions
- getDefaultOption
* The mw.language.commafy client-side method has been deprecated, to match
the deprecation of Language::commafy. Use mw.language.convertNumber
instead.
* The "es6-promise" module has been deprecated. Use "es6-polyfills" instead.
* Title::isDeleted() and Title::isDeletedQuick() have been deprecated. Please
use Title::getDeletedEditsCount() and Title::hasDeletedEdits() instead.
* Article::getContentObject, soft-deprecated since 1.32, was hard-deprecated.
* WikiRevision::importUpload, soft-deprecated since 1.31, was hard-deprecated.
* Html::infoBox() has been deprecated. There's no replacement.
* Message::toString() without a $format parameter, soft-deprecated since 1.28,
was hard-deprecated. Use explicit formatting methods instead, such as
Message::text() and Message::escaped().
* BagOStuff::makeKeyInternal() usage outside of BagOStuff has been deprecated.
* BagOStuff::setDebug() is deprecated and calls to it are ignored. Debug logs
are now unconditionally enabled.
* The following global functions have been hard deprecated:
- wfAppendToArrayIfNotDefault
- wfAcceptToPrefs
- wfClearOutputBuffers
- wfConfiguredReadOnlyReason
- wfDebugMem
- wfGetPrecompiledData
- wfNegotiateType
* BeforeParserFetchTemplateAndtitleHook has been deprecated; replace
with the new BeforeParserFetchTemplateRevisionRecord hook. (The
similar ParserFetchTemplateHook was deprecated in 1.35; the new hook
replaces both.)
* The InterwikiLoadPrefix hook has been deprecated; it is not compatible
with future wikitext parsers (which need to enumerate all interwiki
prefixes). In test cases please use $wgInterwikiCache instead.
* WikiPage instances should no longer be constructed for titles that do not
represent editable pages (e.g. special pages). WikiPages were always
documented to represent "MediaWiki article and history".
* Skin::getSkinStylePath() has been deprecated. Please replace usages with
the direct path to the resources.
* The second argument of EnhancedChangesList::getDiffHistLinks, $query, has
been deprecated.
* The ParserTestTables hook has been deprecated; it is no longer necessary
after a ParserTestRunner refactoring.
* The following classes have been hard deprecated: CachedAction,
SpecialCachedPage, CacheHelper, ICacheHelper. They were unused in MediaWiki
ecosystem, so no replacement was provided.
* The ProtectionForm::buildForm hook has been deprecated. Please use the
ProtectionFormAddFormFields hook instead.
* RevisionStore::newMutableRevisionFromArray has been hard deprecated. Instead,
MutableRevisionRecord should be constructed directly via constructor.
* UserIdentity::getActorId() is deprecated. The actor ID should not be exposed
to application logic. Storage layer code should use the ActorNormalization
service for normalizing and denormalizing user names.
* Constructing a UserIdentityValue with an actor ID as the third parameter is
deprecated. The parameter should be omitted. Storage layer code should use
the ActorNormalization service for normalizing and denormalizing user names.
* Command::cgroup() is deprecated and no longer functional. $wgShellCgroup is
now implemented as an Executor option.
* Command::restrict() is deprecated. Instead use the new separate accessors.
* MWTidy::tidy() is deprecated. Use MediaWikiServices::getTidy()-tidy() instead.
* TidyDriverBase::supportsValidate() is deprecated; it has always returned
false since 1.33.
* WatchedItem::getUser hard-deprecated in favor of ::getUserIdentity.
* WatchedItemStoreInterface::enqueueWatchlistExpiryJob was hard deprecated in
favor of the new method maybeEnqueueWatchlistExpiryJob that takes care of
relevant configuration checks.
* LogEntry::getPerformer() and its implementations have been hard-deprecated, in
favor of ::getPerformerIdentity().
* AuthManager::singleton(), deprecated in 1.35, is hard deprecated. Use
MediaWikiServices::getAuthManager() instead.
* User::clearNotification(), deprecated in 1.35, is hard deprecated. Use
WatchlistManager::clearTitleUserNotification() instead.
* Passing string to DatabaseBlock::setBlocker was deprecated. Only UserIdentity
is now allowed.
* DatabaseBlock constructor 'byText' option was deprecated in favour of 'by'
option, which now accepts UserIdentity. Passing user ID is deprecated.
* Parser::getUser was deprecated. Use Parser::getUserIdentity instead.
* DatabaseBlock::isWhitelistedFromAutoblocks was deprecated. Use
DatabaseBlock::isExemptedFromAutoblocks instead.
* User::isIPRange(), deprecated in 1.35, is hard deprecated.
Use the UserNameUtils service or IPUtils directly.
* BaseTemplate::getFooterIcons(), deprecated in 1.35, is hard deprecated. Read
footer icons from template data requested via $this->get('footericons').
* `box-shadow()` LESS mixin from mediawiki.mixins is deprecated due to updated
basic browser support. Use unprefixed property `box-shadow:` instead.
* MergeHistory::checkPermissions was deprecated. Use ::probablyCanMerge or
::authorizeMerge instead.
* User::isValidUserName(), deprecated in 1.35, is hard deprecated.
Use the UserNameUtils service instead.
* The TitleArrayFromResult hook has been deprecated.
* The EditPageBeforeEditToolbar hook has been deprecated; it has become
defunct after the classic edit toolbar was removed. Use one of the many
other EditPage hooks instead.
* Deprecated the class name MediaWiki\User\WatchlistNotificationManager; use
MediaWiki\Watchlist\WatchlistManager instead. Deprecated the method
MediaWikiServices->getWatchlistNotificationManager(); use
MediaWikiServices->getWatchlistManager() instead.
* The "ArticleEditUpdatesDeleteFromRecentchanges" hook, deprecated in 1.35, has
been removed. Other hooks like "RecentChange_save" can be used instead.
=== Other changes in 1.36 ===
* The 'tidy' key in ParserOptions (used in the parser cache) has been removed.
It has had no effect since 1.35.
* A future release of MediaWiki will make `{{=}}` a built-in parser function,
for use when automatically escaping the `=` character in template arguments.
A tracking category and parser warning have been added to this release when
`{{=}}` is used and it expands to something other than `=`.
* The implementation of TestFileReader::read has been changed to use Parsoid's
parser test file parser. This should be compatible with existing code, but it
only supports version 2 of the test file specification and may be more strict
when parsing invalid input, including duplicate tests.
* BeforeParserFetchTemplateRevisionRecord, a new hook, unifies and replaces the
old BeforeParserFetchTemplateAndtitleHook and ParserFetchTemplateHook.
* The SkinLessImportPaths attribute was added, allowing skins to add a directory
to the import path for LESS stylesheets. Skins can use this to provide a
custom version of mediawiki.skin.variables.less, setting skin-specific values
for certain LESS variables.
* The interaction between ContentHandler::getParserOutputForIndexing() and
ContentHandler::getDataForSearchIndex() has been clarified (the latter should
only be called with the result of the former). Extensions may override
getParserOutputForIndexing() to skip generating HTML, which may improve
indexing performance. (The default implementation still generates HTML, and
getDataForSearchIndex() implementations can still rely on it if they do not
over-ride getParserOutputForIndexing().)
* Article::fetchContentObject, ::mContentObject, ::mContentLoaded,
::mRevIdFetched, all deprecated since 1.32, were removed.
* Article::mParserOptions and ::setParserOptions were removed.
* Article and ImagePage::getEmptyPageParserOutput, unused, were removed.
* ParserCache's default serialization format was changed from PHP serialization
to JSON serialization. In case some installed extension do not support JSON
yet, $wgParserCacheUseJson can be used to revert back to PHP serialization.
* PermissionManager::groupHasPermission, ::getGroupPermissions and
::getGroupsWithPermission were deprecated, use GroupPermissionsLookup
service instead.
* WatchedItemStoreInterface now accepts PageIdentity where it accepted
LinkTarget, calling with LinkTarget was deprecated.
* 'movable' attribute has been added to the 'namespaces' property of
extension.json schema. Extensions that define namespaces can set it to
`false` to disallow moving pages in the specified namespace. Extensions
should either use this or NamespaceIsMovableHook, but not both. The hook
overrides the attribute.
== Compatibility ==
MediaWiki 1.36 requires PHP 7.3.19 or later and the following PHP extensions:
* ctype
* dom
* fileinfo
* iconv
* intl
* json
* mbstring
* xml
MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
but support for them is somewhat less mature.
The supported versions are:
* MySQL 5.5.8 or later
* PostgreSQL 9.4 or later
* SQLite 3.8.0 or later
== 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/Special:MyLanguage/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.libera.chat.

195
UPGRADE
View File

@ -13,6 +13,12 @@ specific problems, you should check:
We provide comprehensive documentation on upgrading to the latest version of the
software at https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Upgrading.
Important: Upgrading from releases older than two LTS release is not supported anymore.
If you want to upgrade from an old version, please upgrade to a more recent LTS version first,
then to this version.
Currently any upgrade from any version older than 1.27 will fail.
=== Consult the release notes ===
Before doing anything, stop and consult the release notes supplied with the new
@ -96,192 +102,3 @@ normally, that special pages continue to function, etc., and correct any errors
and quirks which reveal themselves.
You should also test any extensions, and upgrade these if necessary.
== Upgrading from 1.16 or earlier ==
If you have a Chinese or Japanese wiki ($wgLanguageCode is set to one of "zh",
"ja", or "yue") and you are using MySQL fulltext search, you will probably want
to update the search index.
In the "maintenance" directory, run the updateDoubleWidthSearch.php script. This
will update the searchindex table for those pages that contain double-byte Latin
characters.
== Upgrading from 1.10 or earlier ==
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.
== Upgrading from 1.8 or earlier ==
MediaWiki 1.9 and later no longer keep default localized message text in the
database; 'MediaWiki:'-namespace pages that do not exist in the database are
simply transparently filled-in on demand.
The upgrade process will delete any 'MediaWiki:' pages which are left in the
default state (last edited by 'MediaWiki default'). This may take a few moments,
similar to the old initial setup.
Note that the large number of deletions may cause older edits to expire from the
list on Special:Recentchanges, although the deletions themselves will be hidden
by default. (Click "show bot edits" to list them.)
See RELEASE-NOTES for more details about new and changed options.
== Upgrading from 1.7 or earlier ==
$wgDefaultUserOptions now contains all the defaults, not only overrides. If you
are setting this as a complete array(), you may need to change it to set only
specific items as recommended in DefaultSettings.php.
== Upgrading from 1.6 or earlier ==
$wgLocalTZoffset was in hours, it is now using minutes.
If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
new database fields are filled with data.
== Upgrading from 1.5 or earlier ==
Major changes have been made to the schema from 1.4.x. The updater has not been
fully tested for all conditions, and might well break.
On a large site, the schema update might take a long time. It might explode, or
leave your database half-done or otherwise badly hurting.
Among other changes, note that Latin-1 encoding (ISO-8859-1) is no longer
supported. Latin-1 wikis will need to be upgraded to UTF-8; an experimental
command-line upgrade helper script, 'upgrade1_5.php', can do this -- run it
prior to 'update.php' or the Web upgrader.
NOTE that upgrade1_5.php does not work properly with recent versions of
MediaWiki. If upgrading a 1.4.x wiki, you should upgrade to 1.5 first.
upgrade1_5.php has been removed from MediaWiki 1.21.
If you absolutely cannot make the UTF-8 upgrade work, you can try doing it by
hand: dump your old database, convert the dump file using iconv as described
here: http://portal.suse.com/sdb/en/2004/05/jbartsh_utf-8.html
and then re-import it. You can also convert filenames using convmv, but note
that the old directory hashes will no longer be valid, so you will also have to
move them to new destinations.
Message changes:
* A number of additional UI messages have been changed from HTML to wikitext,
and will need to be manually fixed if customized.
=== Configuration changes from 1.4.x: ===
$wgDisableUploads has been replaced with $wgEnableUploads.
$wgWhitelistAccount has been replaced by the 'createaccount' permission key in
$wgGroupPermissions. To emulate the old effect of setting:
$wgWhitelistAccount['user'] = 0;
set:
$wgGroupPermissions['*']['createaccount'] = false;
$wgWhitelistEdit has been replaced by the 'edit' permission key. To emulate the
old effect of setting:
$wgWhitelistEdit = true;
set:
$wgGroupPermissions['*']['edit'] = false;
If $wgWhitelistRead is set, you must also disable the 'read' permission for it
to take affect on anonymous users:
$wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
$wgGroupPermissions['*']['read'] = false;
Note that you can disable/enable several other permissions by modifying this
configuration array in your LocalSettings.php; see DefaultSettings.php for the
complete default permission set.
If using Memcached, you must enabled it differently now:
$wgUseMemCached = true;
should be replaced with:
$wgMainCacheType = CACHE_MEMCACHED;
== Upgrading from 1.4.2 or earlier ==
1.4.3 has added new fields to the sitestats table. These fields are optional and
help to speed Special:Statistics on large sites. If you choose not to run the
database upgrades, everything will continue to work in 1.4.3.
You can apply the update by running maintenance/update.php, or manually run the
SQL commands from this file:
maintenance/archives/patch-ss_total_articles.sql
== Upgrading from 1.4rc1 or earlier betas ==
The logging table has been altered from 1.4beta4 to 1.4beta5 and again in 1.4.0
final. Copy in the new files and use the Web installer to upgrade, or the
command-line maintenance/update.php.
If you cannot use the automated installers/updaters, you may update the table by
manually running the SQL commands in these files:
maintenance/archives/patch-log_params.sql
maintenance/archives/patch-logging-title.sql
== Upgrading from 1.3 or earlier ==
This should generally go smoothly.
If you keep your LocalSettings.php, you may need to change the style paths to
match the newly rearranged skin modules. Change these lines:
$wgStylePath = "$wgScriptPath/stylesheets";
$wgStyleDirectory = "$IP/stylesheets";
$wgLogo = "$wgStylePath/images/wiki.png";
to this:
$wgStylePath = "$wgScriptPath/skins";
$wgStyleDirectory = "$IP/skins";
$wgLogo = "$wgStylePath/common/images/wiki.png";
As well as new messages, the processing of some messages has changed. If you
have customized them, please compare the new format using Special:Allmessages or
the relevant LanguageXX.php files:
* copyrightwarning
* editingcomment (was named commentedit)
* editingsection (was named sectionedit)
* protectedarticle
* unprotectedarticle
Note that the 1.3 beta releases included a potential vulnerability if PHP is
configured with register_globals on and the includes directory is served to the
Web. For general safety, turn register_globals *off* if you don't _really_ need
it for another package.
If your hosting provider turns it on and you can't turn it off yourself, send
them a kind note explaining that it can expose their servers and their customers
to attacks.
== Upgrading from 1.2 or earlier ==
If you've been using the MediaWiki: namespace for custom page templates, note
that things are a little different. The Template: namespace has been added which
is more powerful -- templates can include parameters for instance.
If you were using custom MediaWiki: entries for text inclusions, they will *not*
automatically be moved to Template: entries at upgrade time. Be sure to go
through and check that everything is working properly; you can move them
manually or you can try using moveCustomMessages.php in maintenance/archives to
do it automatically, but this might break things.
Also, be sure to pick the correct character encoding -- some languages were only
available in Latin-1 on 1.2.x and are now available for Unicode as well. If you
want to upgrade an existing wiki from Latin-1 to Unicode you'll have to dump the
database to SQL, run it through iconv or another conversion tool, and restore
it. Sorry.
== Upgrading from 1.1 or earlier ==
This is less thoroughly tested, but should work.
You need to specify the *admin* database username and password to the installer
in order for it to successfully upgrade the database structure. You may wish to
manually change the GRANTs later.
If you have a very old database (earlier than organized MediaWiki releases in
late August 2003) you may need to manually run some of the update SQL scripts in
maintenance/archives before the installer is able to pick up with remaining
updates.

View File

@ -169,10 +169,8 @@ $wgAutoloadLocalClasses = [
'AugmentPageProps' => __DIR__ . '/includes/search/AugmentPageProps.php',
'AuthManagerSpecialPage' => __DIR__ . '/includes/specialpage/AuthManagerSpecialPage.php',
'AutoCommitUpdate' => __DIR__ . '/includes/deferred/AutoCommitUpdate.php',
'AutoLoader' => __DIR__ . '/includes/AutoLoader.php',
'AutoloadGenerator' => __DIR__ . '/includes/utils/AutoloadGenerator.php',
'Autopromote' => __DIR__ . '/includes/Autopromote.php',
'AvroValidator' => __DIR__ . '/includes/utils/AvroValidator.php',
'BacklinkCache' => __DIR__ . '/includes/cache/BacklinkCache.php',
'BacklinkJobUtils' => __DIR__ . '/includes/jobqueue/utils/BacklinkJobUtils.php',
'BackupDumper' => __DIR__ . '/maintenance/includes/BackupDumper.php',
@ -180,6 +178,7 @@ $wgAutoloadLocalClasses = [
'BadRequestError' => __DIR__ . '/includes/exception/BadRequestError.php',
'BadTitleError' => __DIR__ . '/includes/exception/BadTitleError.php',
'BagOStuff' => __DIR__ . '/includes/libs/objectcache/BagOStuff.php',
'BanConverter' => __DIR__ . '/includes/language/converters/BanConverter.php',
'BaseDump' => __DIR__ . '/includes/export/BaseDump.php',
'BaseSearchResultSet' => __DIR__ . '/includes/search/BaseSearchResultSet.php',
'BaseTemplate' => __DIR__ . '/includes/skins/BaseTemplate.php',
@ -192,11 +191,9 @@ $wgAutoloadLocalClasses = [
'BenchIfSwitch' => __DIR__ . '/maintenance/benchmarks/bench_if_switch.php',
'BenchUtf8TitleCheck' => __DIR__ . '/maintenance/benchmarks/bench_utf8_title_check.php',
'BenchWikimediaBaseConvert' => __DIR__ . '/maintenance/benchmarks/bench_Wikimedia_base_convert.php',
'BenchmarkCSSMin' => __DIR__ . '/maintenance/benchmarks/benchmarkCSSMin.php',
'BenchmarkDeleteTruncate' => __DIR__ . '/maintenance/benchmarks/bench_delete_truncate.php',
'BenchmarkHooks' => __DIR__ . '/maintenance/benchmarks/benchmarkHooks.php',
'BenchmarkJSMinPlus' => __DIR__ . '/maintenance/benchmarks/benchmarkJSMinPlus.php',
'BenchmarkJavaScriptMinifier' => __DIR__ . '/maintenance/benchmarks/benchmarkJavaScriptMinifier.php',
'BenchmarkLruHash' => __DIR__ . '/maintenance/benchmarks/benchmarkLruHash.php',
'BenchmarkParse' => __DIR__ . '/maintenance/benchmarks/benchmarkParse.php',
'BenchmarkPurge' => __DIR__ . '/maintenance/benchmarks/benchmarkPurge.php',
@ -218,7 +215,6 @@ $wgAutoloadLocalClasses = [
'BotPassword' => __DIR__ . '/includes/user/BotPassword.php',
'BufferingStatsdDataFactory' => __DIR__ . '/includes/libs/stats/BufferingStatsdDataFactory.php',
'CLIParser' => __DIR__ . '/maintenance/parse.php',
'CSSMin' => __DIR__ . '/includes/libs/CSSMin.php',
'CacheDependency' => __DIR__ . '/includes/cache/dependency/CacheDependency.php',
'CacheHelper' => __DIR__ . '/includes/cache/CacheHelper.php',
'CacheTime' => __DIR__ . '/includes/parser/CacheTime.php',
@ -229,7 +225,6 @@ $wgAutoloadLocalClasses = [
'CategoriesRdf' => __DIR__ . '/includes/CategoriesRdf.php',
'Category' => __DIR__ . '/includes/Category.php',
'CategoryChangesAsRdf' => __DIR__ . '/maintenance/categoryChangesAsRdf.php',
'CategoryFinder' => __DIR__ . '/includes/CategoryFinder.php',
'CategoryMembershipChange' => __DIR__ . '/includes/changes/CategoryMembershipChange.php',
'CategoryMembershipChangeJob' => __DIR__ . '/includes/jobqueue/jobs/CategoryMembershipChangeJob.php',
'CategoryPage' => __DIR__ . '/includes/page/CategoryPage.php',
@ -238,7 +233,6 @@ $wgAutoloadLocalClasses = [
'CdnCacheUpdate' => __DIR__ . '/includes/deferred/CdnCacheUpdate.php',
'CdnPurgeJob' => __DIR__ . '/includes/jobqueue/jobs/CdnPurgeJob.php',
'CentralIdLookup' => __DIR__ . '/includes/user/CentralIdLookup.php',
'CgzCopyTransaction' => __DIR__ . '/maintenance/storage/recompressTracked.php',
'ChangePassword' => __DIR__ . '/maintenance/changePassword.php',
'ChangeTags' => __DIR__ . '/includes/changetags/ChangeTags.php',
'ChangeTagsList' => __DIR__ . '/includes/changetags/ChangeTagsList.php',
@ -261,7 +255,6 @@ $wgAutoloadLocalClasses = [
'CheckDependencies' => __DIR__ . '/maintenance/checkDependencies.php',
'CheckImages' => __DIR__ . '/maintenance/checkImages.php',
'CheckLess' => __DIR__ . '/maintenance/checkLess.php',
'CheckStorage' => __DIR__ . '/maintenance/storage/checkStorage.php',
'CheckUsernames' => __DIR__ . '/maintenance/checkUsernames.php',
'ClassCollector' => __DIR__ . '/includes/utils/ClassCollector.php',
'CleanupBlocks' => __DIR__ . '/maintenance/cleanupBlocks.php',
@ -281,13 +274,11 @@ $wgAutoloadLocalClasses = [
'ClearWatchlistNotificationsJob' => __DIR__ . '/includes/jobqueue/jobs/ClearWatchlistNotificationsJob.php',
'CliInstaller' => __DIR__ . '/includes/installer/CliInstaller.php',
'CloneDatabase' => __DIR__ . '/includes/db/CloneDatabase.php',
'CodeCleanerGlobalsPass' => __DIR__ . '/maintenance/CodeCleanerGlobalsPass.inc',
'CodeCleanerGlobalsPass' => __DIR__ . '/maintenance/CodeCleanerGlobalsPass.php',
'CodeContentHandler' => __DIR__ . '/includes/content/CodeContentHandler.php',
'CollapsibleFieldsetLayout' => __DIR__ . '/includes/htmlform/CollapsibleFieldsetLayout.php',
'Collation' => __DIR__ . '/includes/collation/Collation.php',
'CollationCkb' => __DIR__ . '/includes/collation/CollationCkb.php',
'CommandLineInc' => __DIR__ . '/maintenance/commandLine.inc',
'CommandLineInstaller' => __DIR__ . '/maintenance/install.php',
'CommentStore' => __DIR__ . '/includes/CommentStore.php',
'CommentStoreComment' => __DIR__ . '/includes/CommentStoreComment.php',
'CompareParserCache' => __DIR__ . '/maintenance/compareParserCache.php',
@ -315,8 +306,6 @@ $wgAutoloadLocalClasses = [
'ContextSource' => __DIR__ . '/includes/context/ContextSource.php',
'ContribsPager' => __DIR__ . '/includes/specials/pagers/ContribsPager.php',
'ConvertExtensionToRegistration' => __DIR__ . '/maintenance/convertExtensionToRegistration.php',
'ConvertLinks' => __DIR__ . '/maintenance/convertLinks.php',
'ConvertUserOptions' => __DIR__ . '/maintenance/convertUserOptions.php',
'ConverterRule' => __DIR__ . '/includes/language/ConverterRule.php',
'Cookie' => __DIR__ . '/includes/libs/Cookie.php',
'CookieJar' => __DIR__ . '/includes/libs/CookieJar.php',
@ -370,8 +359,9 @@ $wgAutoloadLocalClasses = [
'DeduplicateArchiveRevId' => __DIR__ . '/maintenance/deduplicateArchiveRevId.php',
'DeferrableCallback' => __DIR__ . '/includes/deferred/DeferrableCallback.php',
'DeferrableUpdate' => __DIR__ . '/includes/deferred/DeferrableUpdate.php',
'DeferredStringifier' => __DIR__ . '/includes/libs/DeferredStringifier.php',
'DeferredUpdates' => __DIR__ . '/includes/deferred/DeferredUpdates.php',
'DeferredUpdatesScope' => __DIR__ . '/includes/deferred/DeferredUpdatesScope.php',
'DeferredUpdatesScopeStack' => __DIR__ . '/includes/deferred/DeferredUpdatesScopeStack.php',
'Deflate' => __DIR__ . '/includes/libs/Deflate.php',
'DeleteAction' => __DIR__ . '/includes/actions/DeleteAction.php',
'DeleteArchivedFiles' => __DIR__ . '/maintenance/deleteArchivedFiles.php',
@ -496,6 +486,8 @@ $wgAutoloadLocalClasses = [
'FakeConverter' => __DIR__ . '/includes/language/TrivialLanguageConverter.php',
'FakeMaintenance' => __DIR__ . '/maintenance/includes/FakeMaintenance.php',
'FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
'FallbackContent' => __DIR__ . '/includes/content/FallbackContent.php',
'FallbackContentHandler' => __DIR__ . '/includes/content/FallbackContentHandler.php',
'FatalError' => __DIR__ . '/includes/exception/FatalError.php',
'FauxRequest' => __DIR__ . '/includes/FauxRequest.php',
'FauxResponse' => __DIR__ . '/includes/FauxResponse.php',
@ -563,6 +555,7 @@ $wgAutoloadLocalClasses = [
'GenerateNormalizerDataAr' => __DIR__ . '/maintenance/language/generateNormalizerDataAr.php',
'GenerateNormalizerDataMl' => __DIR__ . '/maintenance/language/generateNormalizerDataMl.php',
'GeneratePhpCharToUpperMappings' => __DIR__ . '/maintenance/mediawiki.Title/generatePhpCharToUpperMappings.php',
'GenerateSchemaChangeSql' => __DIR__ . '/maintenance/generateSchemaChangeSql.php',
'GenerateSchemaSql' => __DIR__ . '/maintenance/generateSchemaSql.php',
'GenerateSitemap' => __DIR__ . '/maintenance/generateSitemap.php',
'GenerateUcfirstOverrides' => __DIR__ . '/maintenance/language/generateUcfirstOverrides.php',
@ -589,6 +582,7 @@ $wgAutoloadLocalClasses = [
'HTMLEditTools' => __DIR__ . '/includes/htmlform/fields/HTMLEditTools.php',
'HTMLExpiryField' => __DIR__ . '/includes/htmlform/fields/HTMLExpiryField.php',
'HTMLFileCache' => __DIR__ . '/includes/cache/HTMLFileCache.php',
'HTMLFileField' => __DIR__ . '/includes/htmlform/fields/HTMLFileField.php',
'HTMLFloatField' => __DIR__ . '/includes/htmlform/fields/HTMLFloatField.php',
'HTMLForm' => __DIR__ . '/includes/htmlform/HTMLForm.php',
'HTMLFormActionFieldLayout' => __DIR__ . '/includes/htmlform/HTMLFormActionFieldLayout.php',
@ -616,6 +610,7 @@ $wgAutoloadLocalClasses = [
'HTMLSizeFilterField' => __DIR__ . '/includes/htmlform/fields/HTMLSizeFilterField.php',
'HTMLSubmitField' => __DIR__ . '/includes/htmlform/fields/HTMLSubmitField.php',
'HTMLTagFilter' => __DIR__ . '/includes/htmlform/fields/HTMLTagFilter.php',
'HTMLTagMultiselectField' => __DIR__ . '/includes/htmlform/fields/HTMLTagMultiselectField.php',
'HTMLTextAreaField' => __DIR__ . '/includes/htmlform/fields/HTMLTextAreaField.php',
'HTMLTextField' => __DIR__ . '/includes/htmlform/fields/HTMLTextField.php',
'HTMLTextFieldWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLTextFieldWithButton.php',
@ -707,7 +702,6 @@ $wgAutoloadLocalClasses = [
'JSTokenizer' => __DIR__ . '/includes/libs/jsminplus.php',
'JavaScriptContent' => __DIR__ . '/includes/content/JavaScriptContent.php',
'JavaScriptContentHandler' => __DIR__ . '/includes/content/JavaScriptContentHandler.php',
'JavaScriptMinifier' => __DIR__ . '/includes/libs/JavaScriptMinifier.php',
'Job' => __DIR__ . '/includes/jobqueue/Job.php',
'JobQueue' => __DIR__ . '/includes/jobqueue/JobQueue.php',
'JobQueueConnectionError' => __DIR__ . '/includes/jobqueue/exception/JobQueueConnectionError.php',
@ -739,8 +733,9 @@ $wgAutoloadLocalClasses = [
'LanguageBe_tarask' => __DIR__ . '/languages/classes/LanguageBe_tarask.php',
'LanguageBs' => __DIR__ . '/languages/classes/LanguageBs.php',
'LanguageCode' => __DIR__ . '/includes/language/LanguageCode.php',
'LanguageConverter' => __DIR__ . '/languages/LanguageConverter.php',
'LanguageConverterSpecific' => __DIR__ . '/languages/LanguageConverterSpecific.php',
'LanguageConverter' => __DIR__ . '/includes/language/LanguageConverter.php',
'LanguageConverterIcu' => __DIR__ . '/includes/language/LanguageConverterIcu.php',
'LanguageConverterSpecific' => __DIR__ . '/includes/language/LanguageConverterSpecific.php',
'LanguageCu' => __DIR__ . '/languages/classes/LanguageCu.php',
'LanguageDsb' => __DIR__ . '/languages/classes/LanguageDsb.php',
'LanguageEn' => __DIR__ . '/languages/classes/LanguageEn.php',
@ -860,6 +855,8 @@ $wgAutoloadLocalClasses = [
'MediaWikiSite' => __DIR__ . '/includes/site/MediaWikiSite.php',
'MediaWikiTitleCodec' => __DIR__ . '/includes/title/MediaWikiTitleCodec.php',
'MediaWikiVersionFetcher' => __DIR__ . '/includes/MediaWikiVersionFetcher.php',
'MediaWiki\\DAO\\WikiAwareEntity' => __DIR__ . '/includes/dao/WikiAwareEntity.php',
'MediaWiki\\DAO\\WikiAwareEntityTrait' => __DIR__ . '/includes/dao/WikiAwareEntityTrait.php',
'MediaWiki\\Debug\\DeprecatablePropertyArray' => __DIR__ . '/includes/debug/DeprecatablePropertyArray.php',
'MediaWiki\\FileBackend\\FSFile\\TempFSFileFactory' => __DIR__ . '/includes/libs/filebackend/fsfile/TempFSFileFactory.php',
'MediaWiki\\Hook\\AbortEmailNotificationHook' => __DIR__ . '/includes/changes/Hook/AbortEmailNotificationHook.php',
@ -876,6 +873,7 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Hook\\BaseTemplateToolboxHook' => __DIR__ . '/includes/skins/Hook/BaseTemplateToolboxHook.php',
'MediaWiki\\Hook\\BeforeParserFetchFileAndTitleHook' => __DIR__ . '/includes/parser/Hook/BeforeParserFetchFileAndTitleHook.php',
'MediaWiki\\Hook\\BeforeParserFetchTemplateAndtitleHook' => __DIR__ . '/includes/parser/Hook/BeforeParserFetchTemplateAndtitleHook.php',
'MediaWiki\\Hook\\BeforeParserFetchTemplateRevisionRecordHook' => __DIR__ . '/includes/parser/Hook/BeforeParserFetchTemplateRevisionRecordHook.php',
'MediaWiki\\Hook\\BeforeParserrenderImageGalleryHook' => __DIR__ . '/includes/parser/Hook/BeforeParserrenderImageGalleryHook.php',
'MediaWiki\\Hook\\BeforeResetNotificationTimestampHook' => __DIR__ . '/includes/watcheditem/Hook/BeforeResetNotificationTimestampHook.php',
'MediaWiki\\Hook\\BeforeWelcomeCreationHook' => __DIR__ . '/includes/specials/Hook/BeforeWelcomeCreationHook.php',
@ -921,6 +919,7 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Hook\\HistoryRevisionToolsHook' => __DIR__ . '/includes/actions/Hook/HistoryRevisionToolsHook.php',
'MediaWiki\\Hook\\HistoryToolsHook' => __DIR__ . '/includes/actions/Hook/HistoryToolsHook.php',
'MediaWiki\\Hook\\IRCLineURLHook' => __DIR__ . '/includes/rcfeed/Hook/IRCLineURLHook.php',
'MediaWiki\\Hook\\ImportHandleContentXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleContentXMLTagHook.php',
'MediaWiki\\Hook\\ImportHandleLogItemXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleLogItemXMLTagHook.php',
'MediaWiki\\Hook\\ImportHandlePageXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandlePageXMLTagHook.php',
'MediaWiki\\Hook\\ImportHandleRevisionXMLTagHook' => __DIR__ . '/includes/import/Hook/ImportHandleRevisionXMLTagHook.php',
@ -965,12 +964,9 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Hook\\PageHistoryPager__getQueryInfoHook' => __DIR__ . '/includes/actions/Hook/PageHistoryPager__getQueryInfoHook.php',
'MediaWiki\\Hook\\PageRenderingHashHook' => __DIR__ . '/includes/parser/Hook/PageRenderingHashHook.php',
'MediaWiki\\Hook\\ParserAfterParseHook' => __DIR__ . '/includes/parser/Hook/ParserAfterParseHook.php',
'MediaWiki\\Hook\\ParserAfterStripHook' => __DIR__ . '/includes/parser/Hook/ParserAfterStripHook.php',
'MediaWiki\\Hook\\ParserAfterTidyHook' => __DIR__ . '/includes/parser/Hook/ParserAfterTidyHook.php',
'MediaWiki\\Hook\\ParserBeforeInternalParseHook' => __DIR__ . '/includes/parser/Hook/ParserBeforeInternalParseHook.php',
'MediaWiki\\Hook\\ParserBeforePreprocessHook' => __DIR__ . '/includes/parser/Hook/ParserBeforePreprocessHook.php',
'MediaWiki\\Hook\\ParserBeforeStripHook' => __DIR__ . '/includes/parser/Hook/ParserBeforeStripHook.php',
'MediaWiki\\Hook\\ParserBeforeTidyHook' => __DIR__ . '/includes/parser/Hook/ParserBeforeTidyHook.php',
'MediaWiki\\Hook\\ParserCacheSaveCompleteHook' => __DIR__ . '/includes/parser/Hook/ParserCacheSaveCompleteHook.php',
'MediaWiki\\Hook\\ParserClearStateHook' => __DIR__ . '/includes/parser/Hook/ParserClearStateHook.php',
'MediaWiki\\Hook\\ParserClonedHook' => __DIR__ . '/includes/parser/Hook/ParserClonedHook.php',
@ -1102,8 +1098,9 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Languages\\LanguageFactory' => __DIR__ . '/includes/language/LanguageFactory.php',
'MediaWiki\\Languages\\LanguageFallback' => __DIR__ . '/includes/language/LanguageFallback.php',
'MediaWiki\\Languages\\LanguageNameUtils' => __DIR__ . '/includes/language/LanguageNameUtils.php',
'MediaWiki\\Mail\\Emailer' => __DIR__ . '/includes/mail/Emailer.php',
'MediaWiki\\Mail\\IEmailer' => __DIR__ . '/includes/mail/IEmailer.php',
'MediaWiki\\Parser\\ParserCacheFactory' => __DIR__ . '/includes/parser/ParserCacheFactory.php',
'MediaWiki\\Parser\\ParserCacheMetadata' => __DIR__ . '/includes/parser/ParserCacheMetadata.php',
'MediaWiki\\Parser\\RevisionOutputCache' => __DIR__ . '/includes/parser/RevisionOutputCache.php',
'MediaWiki\\ProcOpenError' => __DIR__ . '/includes/exception/ProcOpenError.php',
'MediaWiki\\ShellDisabledError' => __DIR__ . '/includes/exception/ShellDisabledError.php',
'MediaWiki\\Skins\\Hook\\SkinAfterPortletHook' => __DIR__ . '/includes/skins/Hook/SkinAfterPortletHook.php',
@ -1122,6 +1119,8 @@ $wgAutoloadLocalClasses = [
'MediaWiki\\Storage\\RevisionStoreRecord' => __DIR__ . '/includes/Revision/RevisionStoreRecord.php',
'MediaWiki\\Storage\\SlotRecord' => __DIR__ . '/includes/Revision/SlotRecord.php',
'MediaWiki\\Storage\\SuppressedDataException' => __DIR__ . '/includes/Revision/SuppressedDataException.php',
'MediaWiki\\User\\WatchlistNotificationManager' => __DIR__ . '/includes/watchlist/WatchlistManager.php',
'MediaWiki\\Watchlist\\WatchlistManager' => __DIR__ . '/includes/watchlist/WatchlistManager.php',
'MediumSpecificBagOStuff' => __DIR__ . '/includes/libs/objectcache/MediumSpecificBagOStuff.php',
'MemcLockManager' => __DIR__ . '/includes/libs/lockmanager/MemcLockManager.php',
'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php',
@ -1133,7 +1132,6 @@ $wgAutoloadLocalClasses = [
'MergeHistory' => __DIR__ . '/includes/MergeHistory.php',
'MergeHistoryPager' => __DIR__ . '/includes/specials/pagers/MergeHistoryPager.php',
'MergeLogFormatter' => __DIR__ . '/includes/logging/MergeLogFormatter.php',
'MergeMessageFileList' => __DIR__ . '/maintenance/mergeMessageFileList.php',
'MergeableUpdate' => __DIR__ . '/includes/deferred/MergeableUpdate.php',
'Message' => __DIR__ . '/includes/language/Message.php',
'MessageBlobStore' => __DIR__ . '/includes/resourceloader/MessageBlobStore.php',
@ -1149,7 +1147,6 @@ $wgAutoloadLocalClasses = [
'MigrateImageCommentTemp' => __DIR__ . '/maintenance/migrateImageCommentTemp.php',
'MigrateUserGroup' => __DIR__ . '/maintenance/migrateUserGroup.php',
'MimeAnalyzer' => __DIR__ . '/includes/libs/mime/MimeAnalyzer.php',
'MinifyScript' => __DIR__ . '/maintenance/minify.php',
'MostimagesPage' => __DIR__ . '/includes/specials/SpecialMostimages.php',
'MoveBatch' => __DIR__ . '/maintenance/moveBatch.php',
'MoveFileOp' => __DIR__ . '/includes/libs/filebackend/fileop/MoveFileOp.php',
@ -1209,9 +1206,6 @@ $wgAutoloadLocalClasses = [
'PPDStack_Hash' => __DIR__ . '/includes/parser/PPDStack_Hash.php',
'PPFrame' => __DIR__ . '/includes/parser/PPFrame.php',
'PPFrame_Hash' => __DIR__ . '/includes/parser/PPFrame_Hash.php',
'PPFuzzTest' => __DIR__ . '/maintenance/preprocessorFuzzTest.php',
'PPFuzzTester' => __DIR__ . '/maintenance/preprocessorFuzzTest.php',
'PPFuzzUser' => __DIR__ . '/maintenance/preprocessorFuzzTest.php',
'PPNode' => __DIR__ . '/includes/parser/PPNode.php',
'PPNode_Hash_Array' => __DIR__ . '/includes/parser/PPNode_Hash_Array.php',
'PPNode_Hash_Attr' => __DIR__ . '/includes/parser/PPNode_Hash_Attr.php',
@ -1257,9 +1251,10 @@ $wgAutoloadLocalClasses = [
'PoolCounterWork' => __DIR__ . '/includes/poolcounter/PoolCounterWork.php',
'PoolCounterWorkViaCallback' => __DIR__ . '/includes/poolcounter/PoolCounterWorkViaCallback.php',
'PoolWorkArticleView' => __DIR__ . '/includes/poolcounter/PoolWorkArticleView.php',
'PoolWorkArticleViewCurrent' => __DIR__ . '/includes/poolcounter/PoolWorkArticleViewCurrent.php',
'PoolWorkArticleViewOld' => __DIR__ . '/includes/poolcounter/PoolWorkArticleViewOld.php',
'PopulateArchiveRevId' => __DIR__ . '/maintenance/populateArchiveRevId.php',
'PopulateBacklinkNamespace' => __DIR__ . '/maintenance/populateBacklinkNamespace.php',
'PopulateCategory' => __DIR__ . '/maintenance/populateCategory.php',
'PopulateChangeTagDef' => __DIR__ . '/maintenance/populateChangeTagDef.php',
'PopulateContentTables' => __DIR__ . '/maintenance/populateContentTables.php',
'PopulateExternallinksIndex60' => __DIR__ . '/maintenance/populateExternallinksIndex60.php',
@ -1267,10 +1262,7 @@ $wgAutoloadLocalClasses = [
'PopulateImageSha1' => __DIR__ . '/maintenance/populateImageSha1.php',
'PopulateInterwiki' => __DIR__ . '/maintenance/populateInterwiki.php',
'PopulateIpChanges' => __DIR__ . '/maintenance/populateIpChanges.php',
'PopulateLogSearch' => __DIR__ . '/maintenance/populateLogSearch.php',
'PopulateLogUsertext' => __DIR__ . '/maintenance/populateLogUsertext.php',
'PopulatePPSortKey' => __DIR__ . '/maintenance/populatePPSortKey.php',
'PopulateParentId' => __DIR__ . '/maintenance/populateParentId.php',
'PopulateRecentChangesSource' => __DIR__ . '/maintenance/populateRecentChangesSource.php',
'PopulateRevisionLength' => __DIR__ . '/maintenance/populateRevisionLength.php',
'PopulateRevisionSha1' => __DIR__ . '/maintenance/populateRevisionSha1.php',
@ -1280,10 +1272,8 @@ $wgAutoloadLocalClasses = [
'PreferencesFormOOUI' => __DIR__ . '/includes/specials/forms/PreferencesFormOOUI.php',
'PrefixSearch' => __DIR__ . '/includes/search/PrefixSearch.php',
'PrefixingStatsdDataFactoryProxy' => __DIR__ . '/includes/libs/stats/PrefixingStatsdDataFactoryProxy.php',
'PreprocessDump' => __DIR__ . '/maintenance/preprocessDump.php',
'Preprocessor' => __DIR__ . '/includes/parser/Preprocessor.php',
'Preprocessor_Hash' => __DIR__ . '/includes/parser/Preprocessor_Hash.php',
'ProcessCacheLRU' => __DIR__ . '/includes/libs/ProcessCacheLRU.php',
'Processor' => __DIR__ . '/includes/registration/Processor.php',
'Profiler' => __DIR__ . '/includes/profiler/Profiler.php',
'ProfilerExcimer' => __DIR__ . '/includes/profiler/ProfilerExcimer.php',
@ -1311,6 +1301,7 @@ $wgAutoloadLocalClasses = [
'PurgeExpiredWatchlistItems' => __DIR__ . '/maintenance/purgeExpiredWatchlistItems.php',
'PurgeJobUtils' => __DIR__ . '/includes/jobqueue/utils/PurgeJobUtils.php',
'PurgeList' => __DIR__ . '/maintenance/purgeList.php',
'PurgeMessageBlobStore' => __DIR__ . '/maintenance/purgeMessageBlobStore.php',
'PurgeModuleDeps' => __DIR__ . '/maintenance/purgeModuleDeps.php',
'PurgeOldText' => __DIR__ . '/maintenance/purgeOldText.php',
'PurgePage' => __DIR__ . '/maintenance/purgePage.php',
@ -1342,7 +1333,6 @@ $wgAutoloadLocalClasses = [
'RebuildTextIndex' => __DIR__ . '/maintenance/rebuildtextindex.php',
'RecentChange' => __DIR__ . '/includes/changes/RecentChange.php',
'RecentChangesUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/RecentChangesUpdateJob.php',
'RecompressTracked' => __DIR__ . '/maintenance/storage/recompressTracked.php',
'RecountCategories' => __DIR__ . '/maintenance/recountCategories.php',
'RedirectSpecialArticle' => __DIR__ . '/includes/specialpage/RedirectSpecialArticle.php',
'RedirectSpecialPage' => __DIR__ . '/includes/specialpage/RedirectSpecialPage.php',
@ -1418,6 +1408,7 @@ $wgAutoloadLocalClasses = [
'ReverseArrayIterator' => __DIR__ . '/includes/libs/ReverseArrayIterator.php',
'ReverseChronologicalPager' => __DIR__ . '/includes/pager/ReverseChronologicalPager.php',
'RevertAction' => __DIR__ . '/includes/actions/RevertAction.php',
'RevertedTagUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/RevertedTagUpdateJob.php',
'Revision' => __DIR__ . '/includes/Revision.php',
'RevisionDeleteUser' => __DIR__ . '/includes/revisiondelete/RevisionDeleteUser.php',
'RevisionDeleter' => __DIR__ . '/includes/revisiondelete/RevisionDeleter.php',
@ -1435,7 +1426,6 @@ $wgAutoloadLocalClasses = [
'RunBatchedQuery' => __DIR__ . '/maintenance/runBatchedQuery.php',
'RunJobs' => __DIR__ . '/maintenance/runJobs.php',
'RunnableJob' => __DIR__ . '/includes/jobqueue/RunnableJob.php',
'SVGMetadataExtractor' => __DIR__ . '/includes/media/SVGMetadataExtractor.php',
'SVGReader' => __DIR__ . '/includes/media/SVGReader.php',
'SamplingStatsdClient' => __DIR__ . '/includes/libs/stats/SamplingStatsdClient.php',
'Sanitizer' => __DIR__ . '/includes/parser/Sanitizer.php',
@ -1566,7 +1556,6 @@ $wgAutoloadLocalClasses = [
'SpecialPage' => __DIR__ . '/includes/specialpage/SpecialPage.php',
'SpecialPageAction' => __DIR__ . '/includes/actions/SpecialPageAction.php',
'SpecialPageData' => __DIR__ . '/includes/specials/SpecialPageData.php',
'SpecialPageFactory' => __DIR__ . '/includes/specialpage/SpecialPageFactory_deprecated.php',
'SpecialPageHistory' => __DIR__ . '/includes/specials/SpecialPageHistory.php',
'SpecialPageInfo' => __DIR__ . '/includes/specials/SpecialPageInfo.php',
'SpecialPageLanguage' => __DIR__ . '/includes/specials/SpecialPageLanguage.php',
@ -1623,12 +1612,10 @@ $wgAutoloadLocalClasses = [
'SqlBagOStuff' => __DIR__ . '/includes/objectcache/SqlBagOStuff.php',
'SqlSearchResult' => __DIR__ . '/includes/search/SqlSearchResult.php',
'SqlSearchResultSet' => __DIR__ . '/includes/search/SqlSearchResultSet.php',
'Sqlite' => __DIR__ . '/maintenance/sqlite.inc',
'Sqlite' => __DIR__ . '/maintenance/Sqlite.php',
'SqliteInstaller' => __DIR__ . '/includes/installer/SqliteInstaller.php',
'SqliteMaintenance' => __DIR__ . '/maintenance/sqlite.php',
'SqliteMaintenance' => __DIR__ . '/maintenance/SqliteMaintenance.php',
'SqliteUpdater' => __DIR__ . '/includes/installer/SqliteUpdater.php',
'SquidPurgeClient' => __DIR__ . '/includes/clientpool/SquidPurgeClient.php',
'SquidPurgeClientPool' => __DIR__ . '/includes/clientpool/SquidPurgeClientPool.php',
'SrConverter' => __DIR__ . '/includes/language/converters/SrConverter.php',
'StatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
'StatsdAwareInterface' => __DIR__ . '/includes/libs/stats/StatsdAwareInterface.php',
@ -1652,7 +1639,7 @@ $wgAutoloadLocalClasses = [
'SwiftFileOpHandle' => __DIR__ . '/includes/libs/filebackend/fileophandle/SwiftFileOpHandle.php',
'SwiftVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/SwiftVirtualRESTService.php',
'SyncFileBackend' => __DIR__ . '/maintenance/syncFileBackend.php',
'TableCleanup' => __DIR__ . '/maintenance/cleanupTable.inc',
'TableCleanup' => __DIR__ . '/maintenance/TableCleanup.php',
'TableDiffFormatter' => __DIR__ . '/includes/diff/TableDiffFormatter.php',
'TablePager' => __DIR__ . '/includes/pager/TablePager.php',
'TagLogFormatter' => __DIR__ . '/includes/logging/TagLogFormatter.php',
@ -1681,7 +1668,7 @@ $wgAutoloadLocalClasses = [
'TitleParser' => __DIR__ . '/includes/title/TitleParser.php',
'TitlePrefixSearch' => __DIR__ . '/includes/search/TitlePrefixSearch.php',
'TitleValue' => __DIR__ . '/includes/title/TitleValue.php',
'TrackBlobs' => __DIR__ . '/maintenance/storage/trackBlobs.php',
'TlyConverter' => __DIR__ . '/includes/language/converters/TlyConverter.php',
'TrackingCategories' => __DIR__ . '/includes/TrackingCategories.php',
'TraditionalImageGallery' => __DIR__ . '/includes/gallery/TraditionalImageGallery.php',
'TransactionRoundAwareUpdate' => __DIR__ . '/includes/deferred/TransactionRoundAwareUpdate.php',
@ -1696,8 +1683,8 @@ $wgAutoloadLocalClasses = [
'UcdXmlReader' => __DIR__ . '/maintenance/language/generateCollationData.php',
'Undelete' => __DIR__ . '/maintenance/undelete.php',
'UnifiedDiffFormatter' => __DIR__ . '/includes/diff/UnifiedDiffFormatter.php',
'UnknownContent' => __DIR__ . '/includes/content/UnknownContent.php',
'UnknownContentHandler' => __DIR__ . '/includes/content/UnknownContentHandler.php',
'UnknownContent' => __DIR__ . '/includes/content/FallbackContent.php',
'UnknownContentHandler' => __DIR__ . '/includes/content/FallbackContentHandler.php',
'UnlistedSpecialPage' => __DIR__ . '/includes/specialpage/UnlistedSpecialPage.php',
'UnprotectAction' => __DIR__ . '/includes/actions/UnprotectAction.php',
'UnregisteredLocalFile' => __DIR__ . '/includes/filerepo/file/UnregisteredLocalFile.php',
@ -1705,10 +1692,7 @@ $wgAutoloadLocalClasses = [
'UnwatchAction' => __DIR__ . '/includes/actions/UnwatchAction.php',
'UpdateArticleCount' => __DIR__ . '/maintenance/updateArticleCount.php',
'UpdateCollation' => __DIR__ . '/maintenance/updateCollation.php',
'UpdateDoubleWidthSearch' => __DIR__ . '/maintenance/updateDoubleWidthSearch.php',
'UpdateExtensionJsonSchema' => __DIR__ . '/maintenance/updateExtensionJsonSchema.php',
'UpdateLogging' => __DIR__ . '/maintenance/archives/upgradeLogging.php',
'UpdateMediaWiki' => __DIR__ . '/maintenance/update.php',
'UpdateRestrictions' => __DIR__ . '/maintenance/updateRestrictions.php',
'UpdateSearchIndex' => __DIR__ . '/maintenance/updateSearchIndex.php',
'UpdateSpecialPages' => __DIR__ . '/maintenance/updateSpecialPages.php',
@ -1742,12 +1726,12 @@ $wgAutoloadLocalClasses = [
'UserArrayFromResult' => __DIR__ . '/includes/user/UserArrayFromResult.php',
'UserBlockedError' => __DIR__ . '/includes/exception/UserBlockedError.php',
'UserCache' => __DIR__ . '/includes/cache/UserCache.php',
'UserDupes' => __DIR__ . '/maintenance/userDupes.inc',
'UserEditCountInitJob' => __DIR__ . '/includes/jobqueue/jobs/UserEditCountInitJob.php',
'UserEditCountUpdate' => __DIR__ . '/includes/deferred/UserEditCountUpdate.php',
'UserGroupExpiryJob' => __DIR__ . '/includes/jobqueue/jobs/UserGroupExpiryJob.php',
'UserGroupMembership' => __DIR__ . '/includes/user/UserGroupMembership.php',
'UserMailer' => __DIR__ . '/includes/mail/UserMailer.php',
'UserNamePrefixSearch' => __DIR__ . '/includes/user/UserNamePrefixSearch.php',
'UserNamePrefixSearch' => __DIR__ . '/includes/user/UserNamePrefixSearch_deprecated.php',
'UserNotLoggedIn' => __DIR__ . '/includes/exception/UserNotLoggedIn.php',
'UserOptionsMaintenance' => __DIR__ . '/maintenance/userOptions.php',
'UserOptionsUpdateJob' => __DIR__ . '/includes/jobqueue/jobs/UserOptionsUpdateJob.php',
@ -1758,6 +1742,7 @@ $wgAutoloadLocalClasses = [
'UzConverter' => __DIR__ . '/includes/language/converters/UzConverter.php',
'VFormHTMLForm' => __DIR__ . '/includes/htmlform/VFormHTMLForm.php',
'ValidateRegistrationFile' => __DIR__ . '/maintenance/validateRegistrationFile.php',
'Version' => __DIR__ . '/maintenance/version.php',
'VersionChecker' => __DIR__ . '/includes/registration/VersionChecker.php',
'ViewAction' => __DIR__ . '/includes/actions/ViewAction.php',
'ViewCLI' => __DIR__ . '/maintenance/view.php',
@ -1817,6 +1802,7 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\LightweightObjectStore\\StorageAwareness' => __DIR__ . '/includes/libs/objectcache/utils/StorageAwareness.php',
'Wikimedia\\Mime\\MimeMap' => __DIR__ . '/includes/libs/mime/MimeMap.php',
'Wikimedia\\Mime\\MimeMapMinimal' => __DIR__ . '/includes/libs/mime/MimeMapMinimal.php',
'Wikimedia\\NonSerializable\\NonSerializableTrait' => __DIR__ . '/includes/libs/NonSerializableTrait.php',
'Wikimedia\\Rdbms\\AtomicSectionIdentifier' => __DIR__ . '/includes/libs/rdbms/database/utils/AtomicSectionIdentifier.php',
'Wikimedia\\Rdbms\\Blob' => __DIR__ . '/includes/libs/rdbms/encasing/Blob.php',
'Wikimedia\\Rdbms\\ChronologyProtector' => __DIR__ . '/includes/libs/rdbms/ChronologyProtector.php',
@ -1843,8 +1829,11 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Rdbms\\DatabaseMysqli' => __DIR__ . '/includes/libs/rdbms/database/DatabaseMysqli.php',
'Wikimedia\\Rdbms\\DatabasePostgres' => __DIR__ . '/includes/libs/rdbms/database/DatabasePostgres.php',
'Wikimedia\\Rdbms\\DatabaseSqlite' => __DIR__ . '/includes/libs/rdbms/database/DatabaseSqlite.php',
'Wikimedia\\Rdbms\\DoctrineAbstractSchemaTrait' => __DIR__ . '/includes/libs/rdbms/database/DoctrineAbstractSchemaTrait.php',
'Wikimedia\\Rdbms\\DoctrineSchemaBuilder' => __DIR__ . '/includes/libs/rdbms/database/DoctrineSchemaBuilder.php',
'Wikimedia\\Rdbms\\DoctrineSchemaBuilderFactory' => __DIR__ . '/includes/libs/rdbms/database/DoctrineSchemaBuilderFactory.php',
'Wikimedia\\Rdbms\\DoctrineSchemaChangeBuilder' => __DIR__ . '/includes/libs/rdbms/database/DoctrineSchemaChangeBuilder.php',
'Wikimedia\\Rdbms\\EnumType' => __DIR__ . '/includes/libs/rdbms/database/EnumType.php',
'Wikimedia\\Rdbms\\FakeResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/FakeResultWrapper.php',
'Wikimedia\\Rdbms\\Field' => __DIR__ . '/includes/libs/rdbms/field/Field.php',
'Wikimedia\\Rdbms\\GeneralizedSql' => __DIR__ . '/includes/libs/rdbms/database/utils/GeneralizedSql.php',
@ -1867,6 +1856,8 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Rdbms\\LoadMonitor' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitor.php',
'Wikimedia\\Rdbms\\LoadMonitorMySQL' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorMySQL.php',
'Wikimedia\\Rdbms\\LoadMonitorNull' => __DIR__ . '/includes/libs/rdbms/loadmonitor/LoadMonitorNull.php',
'Wikimedia\\Rdbms\\MWMySQLPlatform' => __DIR__ . '/includes/libs/rdbms/database/MWMySQLPlatform.php',
'Wikimedia\\Rdbms\\MWPostgreSqlPlatform' => __DIR__ . '/includes/libs/rdbms/database/MWPostgreSqlPlatform.php',
'Wikimedia\\Rdbms\\MaintainableDBConnRef' => __DIR__ . '/includes/libs/rdbms/database/MaintainableDBConnRef.php',
'Wikimedia\\Rdbms\\MySQLField' => __DIR__ . '/includes/libs/rdbms/field/MySQLField.php',
'Wikimedia\\Rdbms\\MySQLMasterPos' => __DIR__ . '/includes/libs/rdbms/database/position/MySQLMasterPos.php',
@ -1876,10 +1867,14 @@ $wgAutoloadLocalClasses = [
'Wikimedia\\Rdbms\\ResultWrapper' => __DIR__ . '/includes/libs/rdbms/database/resultwrapper/ResultWrapper.php',
'Wikimedia\\Rdbms\\SQLiteField' => __DIR__ . '/includes/libs/rdbms/field/SQLiteField.php',
'Wikimedia\\Rdbms\\SchemaBuilder' => __DIR__ . '/includes/libs/rdbms/database/SchemaBuilder.php',
'Wikimedia\\Rdbms\\SchemaChangeBuilder' => __DIR__ . '/includes/libs/rdbms/database/SchemaChangeBuilder.php',
'Wikimedia\\Rdbms\\SelectQueryBuilder' => __DIR__ . '/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php',
'Wikimedia\\Rdbms\\SessionConsistentConnectionManager' => __DIR__ . '/includes/libs/rdbms/connectionmanager/SessionConsistentConnectionManager.php',
'Wikimedia\\Rdbms\\Subquery' => __DIR__ . '/includes/libs/rdbms/encasing/Subquery.php',
'Wikimedia\\Rdbms\\TimestampType' => __DIR__ . '/includes/libs/rdbms/database/TimestampType.php',
'Wikimedia\\Rdbms\\TinyIntType' => __DIR__ . '/includes/libs/rdbms/database/TinyIntType.php',
'Wikimedia\\Rdbms\\TransactionProfiler' => __DIR__ . '/includes/libs/rdbms/TransactionProfiler.php',
'Wikimedia\\Reflection\\GhostFieldAccessTrait' => __DIR__ . '/includes/libs/GhostFieldAccessTrait.php',
'WikitextContent' => __DIR__ . '/includes/content/WikitextContent.php',
'WikitextContentHandler' => __DIR__ . '/includes/content/WikitextContentHandler.php',
'WikitextLogFormatter' => __DIR__ . '/includes/logging/WikitextLogFormatter.php',

View File

@ -21,73 +21,78 @@
},
"prefer-stable": true,
"require": {
"composer/semver": "1.7.2",
"composer/semver": "3.2.4",
"cssjanus/cssjanus": "1.3.0",
"ext-ctype": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
"ext-iconv": "*",
"ext-intl": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"guzzlehttp/guzzle": "6.5.5",
"ext-xmlreader": "*",
"guzzlehttp/guzzle": "7.2.0",
"liuggio/statsd-php-client": "1.0.18",
"oojs/oojs-ui": "0.39.3",
"oojs/oojs-ui": "0.41.3",
"pear/mail": "1.4.1",
"pear/mail_mime": "1.10.8",
"pear/net_smtp": "1.9.1",
"pear/mail_mime": "1.10.9",
"pear/net_smtp": "1.9.2",
"php": ">=7.3.19",
"psr/container": "1.0.0",
"psr/log": "1.1.3",
"ralouphie/getallheaders": "3.0.3",
"wikimedia/assert": "0.5.0",
"wikimedia/at-ease": "2.0.0",
"wikimedia/at-ease": "2.1.0",
"wikimedia/base-convert": "2.0.1",
"wikimedia/cdb": "1.4.1",
"wikimedia/cldr-plural-rule-parser": "1.0.0",
"wikimedia/common-passwords": "0.2.0",
"wikimedia/cldr-plural-rule-parser": "2.0.0",
"wikimedia/common-passwords": "0.3.0",
"wikimedia/composer-merge-plugin": "2.0.1",
"wikimedia/html-formatter": "1.0.2",
"wikimedia/ip-set": "2.1.0",
"wikimedia/ip-utils": "1.0.0",
"wikimedia/html-formatter": "3.0.1",
"wikimedia/ip-set": "3.0.0",
"wikimedia/ip-utils": "3.0.2",
"wikimedia/less.php": "3.1.0",
"wikimedia/object-factory": "2.1.0",
"wikimedia/parsoid": "0.12.2",
"wikimedia/php-session-serializer": "1.0.7",
"wikimedia/minify": "2.2.3",
"wikimedia/object-factory": "3.0.0",
"wikimedia/parsoid": "0.13.0",
"wikimedia/php-session-serializer": "2.0.0",
"wikimedia/purtle": "1.0.7",
"wikimedia/relpath": "2.1.1",
"wikimedia/remex-html": "2.2.0",
"wikimedia/remex-html": "2.2.2",
"wikimedia/request-timeout": "1.1.0",
"wikimedia/running-stat": "1.2.1",
"wikimedia/scoped-callback": "3.0.0",
"wikimedia/services": "2.0.1",
"wikimedia/utfnormal": "2.0.0",
"wikimedia/shellbox": "1.0.4",
"wikimedia/utfnormal": "3.0.2",
"wikimedia/timestamp": "3.0.0",
"wikimedia/wait-condition-loop": "1.0.1",
"wikimedia/wait-condition-loop": "2.0.1",
"wikimedia/wrappedstring": "3.2.0",
"wikimedia/xmp-reader": "0.7.0",
"wikimedia/xmp-reader": "0.8.1",
"zordius/lightncandy": "1.2.5"
},
"require-dev": {
"composer/spdx-licenses": "1.5.3",
"composer/spdx-licenses": "1.5.4",
"doctrine/dbal": "3.0.0",
"doctrine/sql-formatter": "1.1.0",
"doctrine/sql-formatter": "1.1.1",
"giorgiosironi/eris": "^0.10.0",
"hamcrest/hamcrest-php": "^2.0",
"johnkary/phpunit-speedtrap": "^3.1",
"justinrainbow/json-schema": "~5.2",
"mediawiki/mediawiki-codesniffer": "34.0.0",
"mediawiki/mediawiki-codesniffer": "35.0.0",
"mediawiki/mediawiki-phan-config": "0.10.6",
"monolog/monolog": "~2.2.0",
"nikic/php-parser": "4.4.0",
"nikic/php-parser": "4.10.2",
"nmred/kafka-php": "0.1.5",
"php-parallel-lint/php-console-highlighter": "0.5",
"php-parallel-lint/php-parallel-lint": "1.2.0",
"phpunit/phpunit": "^8.5",
"pimple/pimple": "3.3.1",
"psy/psysh": "0.10.4",
"psy/psysh": "0.10.5",
"seld/jsonlint": "1.8.3",
"symfony/yaml": "~3.4|~4.3|~5.0.5",
"wikimedia/avro": "1.9.0",
"symfony/yaml": "~3.4|~5.1",
"wikimedia/testing-access-wrapper": "~2.0",
"wmde/hamcrest-html-matchers": "^0.1.0"
},
@ -98,12 +103,10 @@
"suggest": {
"ext-apcu": "Local data cache for greatly improved performance",
"ext-curl": "Improved http communication abilities",
"ext-intl": "ICU integration",
"ext-openssl": "Cryptographical functions",
"ext-wikidiff2": "Diff accelerator",
"monolog/monolog": "Flexible debug logging system",
"nmred/kafka-php": "Send debug log events to kafka",
"wikimedia/avro": "Binary serialization format used with kafka"
"nmred/kafka-php": "Send debug log events to kafka"
},
"autoload": {
"psr-0": {
@ -119,6 +122,8 @@
]
},
"scripts": {
"mw-install:sqlite": "php maintenance/install.php --server=http://localhost:4000 --dbtype sqlite --dbpath cache/ --scriptpath '' --pass adminpassword MediaWiki Admin",
"serve": "php -S localhost:4000",
"lint": "parallel-lint --exclude vendor",
"phan": "phan -d . --long-progress-bar",
"phpcs": "phpcs -p -s",

View File

@ -221,7 +221,7 @@ Deprecating a hook in this way activates a migration system called
"Hooks": {
"Mash": {
"handler": "main",
"deprecated": "true"
"deprecated": true
}
}

View File

@ -84,6 +84,34 @@ Use of locking reads (e.g. the `FOR UPDATE` clause) is not advised. They are poo
Instead of locking reads, combine your existence checks into your write queries, by using an appropriate condition in the `WHERE` clause of an `UPDATE`, or by using unique indexes in combination with `INSERT IGNORE`. Then use the affected row count to see if the query succeeded.
## Query groups
MediaWiki supports database query groups, a way to indicate a preferred group of database hosts to use for a given query. Query groups are only supported for connections to child (non-master) databases, making them only viable for read operations. It should be noted that using query groups does not _guarantee_ a given group of hosts will be used, but rather that the query prefers such group. Making use of query groups can be benficial in many cases.
One benefit is a reduction of cache misses. Directing reads for a category of queries (e.g. all logging queries) to a given host can result in more deterministic and faster performing queries.
Another benefit is that it allows high-traffic wikis to configure some of their database hosts to handle some types of queries more optimally than others. For example, optimizing with different table indices for faster performance.
Query groups are especially beneficial for queries expected to have a long execution time. Such queries can exhaust a database of its resources (e.g. cache space and I/O time), so targeting a specific group of hosts prevents more urgent queries from suffering a performance decrease.
Additionally, expensive queries can delay database maintenance operations which may increase latency for other queries.
For example, while a database read is executing, if other queries have performed updates to any tables those tables must retain all stale versions of its rows until the read is complete. Now, other potentially unrelated queries must now spend additional time scanning over obsolete rows that are waiting to be purged. Directing these long running queries to dedicated hosts helps prevent other queries in suffering a performance hit.
MediaWiki currently supports the following query groups:
* api
* Only use for queries specific to api.php requests; the method ApiBase::getDB() is provided for this purpose.
* dump
* Only use in MediaWiki dump maintenance scripts. In such scripts, all queries, even fast ones, should use this group.
* vslow
* Only use for queries that are expected to have a long execution time. For example, when calculating per-wiki site statistics.
Use the below example syntax to connect to a database when your query falls into one of the above 3 categories:
```php
$lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
$lb->getConnectionRef( DB_REPLICA, 'vslow' );
```
## Supported DBMSs
MediaWiki is written primarily for use with MySQL. Queries are optimized for it and its schema is considered the canonical version. However, MediaWiki does support the following other DBMSs to varying degrees:

View File

@ -74,16 +74,6 @@ referenced directly by the code (unlike sequence names). Most of
the indexes in the file as of this writing are there due to production
testing of expensive queries on a busy wiki.
== Keeping in sync with tables.sql ==
The script maintenance/postgres/compare_schemas.pl should be
periodically run. It will parse both "tables.sql" files and
produce any differences found. Such differences should be fixed
or exceptions specifically carved out by editing the script
itself. This script has also been very useful in finding problems
in maintenance/tables.sql itself, as it is very strict in the
format it expects things to be in. :)
== MySQL differences ==
The major differences between MySQL and Postgres are represented as

View File

@ -307,6 +307,10 @@
"items": {
"type": ["string", "object"]
}
},
"es6": {
"type": "boolean",
"description": "Whether this module requires an ES6-capable browser. If set to true, loading this module in a non-ES6 browser will cause an error. Using ES6 syntax in modules is not yet supported, but will be in the near future. Default is false."
}
}
},
@ -420,6 +424,10 @@
"type": "object",
"description": "ResourceLoader sources to register"
},
"SkinLessImportPaths": {
"type": "object",
"description": "Path to the skin-specific LESS import directory, keyed by skin name. Can be used to define skin-specific LESS variables."
},
"QUnitTestModule": {
"type": "object",
"description": "A ResourceLoaderFileModule definition registered only when wgEnableJavaScriptTest is true.",
@ -843,6 +851,10 @@
"services": {
"type": "array",
"description": "If supplied and non-empty, the named services are requested from the service container and prepended before 'args'."
},
"optional_services": {
"type": "array",
"description": "If supplied and non-empty, the named services are requested from the service container and appended after 'services' if the services are available; null is passed if the services are not available."
}
}
}

View File

@ -317,6 +317,10 @@
"items": {
"type": ["string", "object"]
}
},
"es6": {
"type": "boolean",
"description": "Whether this module requires an ES6-capable browser. If set to true, loading this module in a non-ES6 browser will cause an error. Using ES6 syntax in modules is not yet supported, but will be in the near future. Default is false."
}
}
},
@ -440,6 +444,10 @@
"type": "object",
"description": "ResourceLoader sources to register"
},
"SkinLessImportPaths": {
"type": "object",
"description": "Path to the skin-specific LESS import directory, keyed by skin name. Can be used to define skin-specific LESS variables."
},
"QUnitTestModule": {
"type": "object",
"description": "A ResourceLoaderFileModule definition registered only when wgEnableJavaScriptTest is true.",
@ -871,6 +879,10 @@
"services": {
"type": "array",
"description": "If supplied and non-empty, the named services are requested from the service container and prepended before 'args'."
},
"optional_services": {
"type": "array",
"description": "If supplied and non-empty, the named services are requested from the service container and appended after 'services' if the services are available; null is passed if the services are not available."
}
}
}
@ -1040,6 +1052,7 @@
"patternProperties": {
"^[a-zA-Z_\u007f-\u00ff][a-zA-Z0-9_\u007f-\u00ff]*$": {
"type": "object",
"additionalProperties": false,
"properties": {
"value": {
"required": true
@ -1065,7 +1078,7 @@
"type": ["string", "array"],
"description": "A description of the config setting, mostly for documentation/developers"
},
"decriptionmsg": {
"descriptionmsg": {
"type": "string",
"description": "The message key which should be used as a description for this configuration option in a user interface. If empty, description will be used."
},

View File

@ -52,15 +52,9 @@ $wgUser
$wgLang
Language object selected by user preferences.
$wgContLang
Language object associated with the wiki being viewed.
$wgParser
Parser object. Parser extensions used to register their hooks here;
modern code should use the ParserFirstCallInit hook.
$wgRequest
WebRequest object, to get request data
$wgMemc
Object caches

View File

@ -54,4 +54,4 @@ require_once RUN_MAINTENANCE_IF_MAIN;
That's it. In the execute() method, you have access to all of the normal
MediaWiki functions, so you can get a DB connection, use the cache, etc.
For full docs on the Maintenance class, see the auto-generated docs at
https://doc.wikimedia.org/mediawiki-core/master/php/html/classMaintenance.html
https://doc.wikimedia.org/mediawiki-core/master/php/classMaintenance.html

View File

@ -83,7 +83,7 @@ $specialPageAliases['bjn'] = [
/** Bengali (বাংলা) */
$specialPageAliases['bn'] = [
'CategoryTree' => [ 'বিষশ্রেণী_বৃক্ষ' ],
'CategoryTree' => [ 'বিষয়শ্রেণী_বৃক্ষ' ],
];
/** Breton (brezhoneg) */

View File

@ -33,7 +33,7 @@ $magicWords['arz'] = [
/** Bengali (বাংলা) */
$magicWords['bn'] = [
'categorytree' => [ 0, 'বিষয়শ্রেণী_বৃক্ষ', 'বিষয়শ্রেণীবৃক্ষ', 'categorytree' ],
'categorytree' => [ 0, 'বিষয়শ্রেণী_বৃক্ষ', 'বিষয়শ্রেণীবৃক্ষ', 'categorytree' ],
];
/** Breton (brezhoneg) */

View File

@ -1,8 +1,8 @@
{
"require-dev": {
"mediawiki/mediawiki-codesniffer": "31.0.0",
"mediawiki/mediawiki-phan-config": "0.10.2",
"mediawiki/minus-x": "1.1.0",
"mediawiki/mediawiki-codesniffer": "35.0.0",
"mediawiki/mediawiki-phan-config": "0.10.6",
"mediawiki/minus-x": "1.1.1",
"php-parallel-lint/php-console-highlighter": "0.5.0",
"php-parallel-lint/php-parallel-lint": "1.2.0"
},

View File

@ -15,7 +15,12 @@
"CategoryTreeHooks::initialize"
],
"SpecialPages": {
"CategoryTree": "CategoryTreePage"
"CategoryTree": {
"class": "CategoryTreePage",
"services": [
"SearchEngineFactory"
]
}
},
"APIModules": {
"categorytree": "ApiCategoryTree"

View File

@ -0,0 +1,13 @@
{
"@metadata": {
"authors": [
"Батыр Комдошев",
"Толуш"
]
},
"categorytree-expand": "јаанадар",
"categorytree-member-counts": "Ичинде {{PLURAL:$1|1 алды категория}}, {{PLURAL:$2|1 бӱк}}, ле {{PLURAL:$3|1 файл}}",
"categorytree-num-categories": "$1 К",
"categorytree-num-pages": "$1 Б",
"categorytree-num-files": "$1 Ф"
}

View File

@ -1,13 +1,14 @@
{
"@metadata": {
"authors": [
"Akamycoco",
"Vickylin77s"
]
},
"categorytree-portlet": " pisakilac",
"categorytree-mode-all": "O po:long no felih",
"categorytree-expand": " misatapang",
"categorytree-member-counts": "Maparo I laloma no $1 ko …I kalaenoay a silsil 、$2 …ay ko felih ato $3 ko tang^an",
"categorytree-member-counts": "Maparo I laloma no {{PLURAL:$1|1 ko i kalaenoay a silsil}}, {{PLURAL:$2|ay ko felih ato}}, and {{PLURAL:$3|ko tang^an}}",
"categorytree-num-categories": "$1 kasakilac",
"categorytree-num-pages": "$1 o felih",
"categorytree-num-files": "$1 tang^an"

View File

@ -1,10 +1,11 @@
{
"@metadata": {
"authors": [
"Gott wisst"
"Gott wisst",
"Heahwrita"
]
},
"categorytree-expand": "gebrǣded",
"categorytree-expand": "gebræded",
"categorytree-num-categories": "$1 F",
"categorytree-num-pages": "$1 T",
"categorytree-num-files": "$1 Y"

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"NikosLikomitros",
"Nikosgranturismogt"
]
},

View File

@ -1,12 +1,15 @@
{
"@metadata": {
"authors": [
"Daud I.F. Argana",
"Diki Ananta",
"Rachmat04",
"Sumbukompor"
]
},
"apihelp-categorytree-description": "Modul internal untuk ekstensi CategoryTree.",
"apihelp-categorytree-summary": "Modul internal untuk ekstensi CategoryTree.",
"apihelp-categorytree-param-category": "Judul di ruangnama kategori, awalan akan diabaikan jika ada.",
"apihelp-categorytree-param-options": "Opsi untuk pembangun CategoryTree sebagai sebuah objek JSON. Opsi <var>kedalaman</var> baku menjadi <kbd>1</kbd>."
"apihelp-categorytree-param-options": "Opsi untuk pembangun CategoryTree sebagai sebuah objek JSON. Opsi <var>kedalaman</var> baku menjadi <kbd>1</kbd>.",
"apierror-categorytree-invalidjson": "Pilihannya haruslah sebuah objek JSON yang valid."
}

View File

@ -1,7 +1,8 @@
{
"@metadata": {
"authors": [
"Eduardo Addad de Oliveira"
"Eduardo Addad de Oliveira",
"Eduardoaddad"
]
},
"apihelp-categorytree-description": "Módulo interno para a extensão \"Árvore de categorias\" (<i>CategoryTree</i>).",

View File

@ -2,12 +2,13 @@
"@metadata": {
"authors": [
"Jopparn",
"Sabelöga",
"WikiPhoenix"
]
},
"apihelp-categorytree-description": "Intern modul för tillägget CategoryTree.",
"apihelp-categorytree-summary": "Intern modul för tillägget CategoryTree.",
"apihelp-categorytree-param-category": "Titel i kategorinamnrymden, prefix kommer att ignoreras om de anges.",
"apihelp-categorytree-param-options": "Alternativ för CategoryTree-konstruktören som ett JSON-objekt. Den <var>fördjupade</var> alternativa standardvärdet är <kbd>1</kbd>.",
"apihelp-categorytree-param-options": "Alternativ för CategoryTree-konstruktören som ett JSON-objekt. <var>depth</var> har standardvärdet <kbd>1</kbd>.",
"apierror-categorytree-invalidjson": "Alternativ måste vara ett giltigt JSON-objekt."
}

View File

@ -6,6 +6,7 @@
"SADIQUI"
]
},
"categorytree-collapse": "طوي",
"categorytree-expand": "وسع",
"categorytree-member-counts": "كيحتاوي على {{PLURAL:$1|تصنيف فرعي واحد|$1 تصنيفات فرعية}}، {{PLURAL:$2|صفحة وحدة|$2 صفحات}}، و{{PLURAL:$3|ملف واحد|$3 ملفات}}",
"categorytree-num-categories": "$1 ت",

View File

@ -2,12 +2,37 @@
"@metadata": {
"authors": [
"Carma citrawati",
"Chinamoonroll",
"Joseagush",
"NoiX180"
]
},
"categorytree": "Taru kategori",
"categorytree-portlet": "Kategori",
"categorytree-legend": "Sinahang taru kategori",
"categorytree-desc": "Navigasi [[Special:CategoryTree|struktur kategori]] sacara dinamis",
"categorytree-header": "Dagingang aran kategori antuk nyingakin kontén ipun ring wentuk taru struktur.\n(Perlu JavaScript.)",
"categorytree-category": "Kategori",
"categorytree-go": "Sinahang taru",
"categorytree-parents": "Rerama",
"categorytree-mode-label": "Mode:",
"categorytree-mode-categories": "wantah kategori",
"categorytree-mode-pages": "kaca tiosan berkas",
"categorytree-mode-all": "makasami kaca",
"categorytree-collapse": "tutup",
"categorytree-expand": "bétbét",
"categorytree-member-counts": "Madaging {{PLURAL:$1|$1 subkategori}}, {{PLURAL:$2|$2 kaca}}, miwah {{PLURAL:$3|$3 berkas}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 K",
"categorytree-num-files": "$1 B"
"categorytree-num-files": "$1 B",
"categorytree-num-empty": "puyung",
"categorytree-load": "muat",
"categorytree-loading": "Ngamuat…",
"categorytree-nothing-found": "nénten nemu napi",
"categorytree-no-subcategories": "tanpa subkategori",
"categorytree-no-parent-categories": "tanpa kategori rerama",
"categorytree-no-pages": "tanpa kaca utawi subkategori",
"categorytree-not-found": "Kategori <i>$1</i> nénten katemu",
"categorytree-error": "Pikobet ngamuat data.",
"categorytree-retry": "Durus jantos dumun miwah coba malih"
}

View File

@ -1,9 +1,13 @@
{
"@metadata": {
"authors": [
"Herryz",
"Salomo Christian Hutajulu",
"Stephensuleeman"
]
},
"categorytree-expand": "parbalohan",
"categorytree-member-counts": "marisi {{PLURAL:$1|$1 sub-horong}}, {{PLURAL:$2|$2 alaman}}, dohot {{PLURAL:$3|$3 surat partadingan}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F",

View File

@ -7,5 +7,6 @@
"categorytree-expand": "Trènou",
"categorytree-member-counts": "Ô lé{{PLURAL:$1|1 akpassoua sin mma|$1 akpassoua sin mma moun}}, {{PLURAL:$2|1 floua boué|$2 floua boué moun}}, ôni'n {{PLURAL:$3|1 floua|$3 floua moun}}",
"categorytree-num-categories": "$1 A",
"categorytree-num-pages": "$1 F"
"categorytree-num-pages": "$1 F",
"categorytree-num-files": "$1 F"
}

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"Muskwatch"
]
},
"categorytree-member-counts": "Alhi {{PLURAL:$1|1 ti subcategory|$1 wa subcategory}}, {{PLURAL:$2|1 ti umat|$2 wa umat}}, and {{PLURAL:$3|1 ti file|$3 wa file}}",
"categorytree-num-files": "$1 F"
}

View File

@ -0,0 +1,11 @@
{
"@metadata": {
"authors": [
"Usingha"
]
},
"categorytree-expand": "সালকর",
"categorytree-num-categories": "$1হান ঠ",
"categorytree-num-pages": "$1হান প",
"categorytree-num-files": "$1হান ফ"
}

View File

@ -0,0 +1,8 @@
{
"@metadata": {
"authors": [
"Brxeditor"
]
},
"categorytree-expand": "फुवार"
}

View File

@ -6,6 +6,7 @@
"KWiki",
"Palapa",
"Srdjan m",
"Srđan",
"editors of bs.wikipedia"
]
},

View File

@ -4,6 +4,7 @@
"Aleator",
"Arnaugir",
"Fitoschido",
"Mguix",
"Paucabot",
"Qllach",
"SMP",
@ -15,7 +16,7 @@
"categorytree-portlet": "Categories",
"categorytree-legend": "Mostra l'arbre de categories",
"categorytree-desc": "Navegació dinàmica per l'[[Special:CategoryTree|estructura de categories]]",
"categorytree-header": "Entreu el nom d'una categoria per a veure l'arbre del seu contingut. Aquesta pàgina utilitza una funcionalitat avançada del JavaScript coneguda com a AJAX, i no funciona en navegadors antics o que tinguin el JavaScript desactivat.",
"categorytree-header": "Introduïu un nom de la categoria per veure el seu contingut com una estructura d'arbre. (Requereix JavaScript.)",
"categorytree-category": "Categoria:",
"categorytree-go": "Mostra l'arbre",
"categorytree-parents": "Categories superiors",

View File

@ -0,0 +1,12 @@
{
"@metadata": {
"authors": [
"Aandeginini"
]
},
"categorytree-expand": "Ozhitoon mangadeyaa",
"categorytree-member-counts": "Biindig {{PLURAL:$1|1 subcategory|$1 anaamayi'ii-niibiwa-mazina'igan}}, {{PLURAL:$2|1 page|$2 mazina'igan}}, gaye {{PLURAL:$3|1 file|$3 niibiwa-mazina'igan}}",
"categorytree-num-categories": "$1 G",
"categorytree-num-pages": "$1 M",
"categorytree-num-files": "$1 NM"
}

View File

@ -4,7 +4,8 @@
"Asoxor",
"Calak",
"Muhammed taha",
"Épine"
"Épine",
"ئارام بکر"
]
},
"categorytree": "درەختی پۆل",
@ -33,6 +34,6 @@
"categorytree-no-parent-categories": "پۆلی باوان نییە",
"categorytree-no-pages": "پەڕە و ژێر پۆل نییە",
"categorytree-not-found": "پۆلی <i>$1</i> نەدۆزرایەوە",
"categorytree-error": "کێشە لە بارکردنی داتا.",
"categorytree-error": "کێشە لە بارکردنی دراوە.",
"categorytree-retry": "تکایە دەمێک ڕاوەستە و دیسان تاقیبکەوە."
}

View File

@ -0,0 +1,14 @@
{
"@metadata": {
"authors": [
"Amire80",
"Dnshitobu",
"Shahadusadik"
]
},
"categorytree-expand": "yelgima",
"categorytree-member-counts": "Di malila {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, ni {{PLURAL:$3|1 file|$3 files}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F"
}

View File

@ -3,6 +3,7 @@
"authors": [
"1917 Ekim Devrimi",
"Erdemaslancan",
"Ghybu",
"Gırd",
"Kumkumuk",
"Marmase",
@ -11,12 +12,12 @@
"Xoser"
]
},
"categorytree": "Dara Kategoriya",
"categorytree": "Dara kategoriyan",
"categorytree-portlet": "Kategoriy",
"categorytree-legend": "Dara kategori bımotné",
"categorytree-desc": "[[Special:CategoryTree|Babeta kategoriya]] dinamikey sera idare ke",
"categorytree-header": "Yew namey kategori bınuse kı zerrekê ey zey vıraştışê dare bıvêne. (Javaskript lazımo)",
"categorytree-category": "Kategori:",
"categorytree-category": "Kategoriye:",
"categorytree-go": "Darer bımocne",
"categorytree-parents": "Kategoriyê serêni",
"categorytree-mode-label": "Modê cı:",
@ -29,7 +30,7 @@
"categorytree-num-categories": "$1 Kategoriy",
"categorytree-num-pages": "$1 Peli",
"categorytree-num-files": "$1 Dosya",
"categorytree-num-empty": "'''Venga'''",
"categorytree-num-empty": "venga",
"categorytree-load": "Bar ke",
"categorytree-loading": "bar beno...",
"categorytree-nothing-found": "maalesef netice çınyo",

View File

@ -5,6 +5,7 @@
"Badseed",
"Consta",
"Dead3y3",
"NikosLikomitros",
"Nikosgranturismogt",
"Protnet",
"SucreRouge",

View File

@ -30,10 +30,12 @@
"categorytree-mode-all": "toutes les pages",
"categorytree-collapse": "replier",
"categorytree-expand": "Développer",
"categorytree-expand-bullet": "►",
"categorytree-empty-bullet": "►",
"categorytree-member-counts": "contient $1 sous-catégorie{{PLURAL:$1||s}}, $2 page{{PLURAL:$2||s}} et $3 fichier{{PLURAL:$3||s}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F",
"categorytree-num-categories": "$1C",
"categorytree-num-pages": "$1P",
"categorytree-num-files": "$1F",
"categorytree-num-empty": "vide",
"categorytree-load": "charger",
"categorytree-loading": "chargement...",

View File

@ -11,12 +11,15 @@
},
"categorytree": "Kategorybeam",
"categorytree-portlet": "Kategoryen",
"categorytree-legend": "Lit kategorystambeam sjen",
"categorytree-header": "Folje in kategorynamme yn om de ynhâld yn in beamstruktuer te sjen. Tink dêrom dat dit spesjale JavaScript funksjes brûkt bekend as AJAX. At jo in tige âlde blêdzjer hawwe of jo hawwe JavaScript net oan stean, dan wurket dit net.",
"categorytree-legend": "Kategorybeam werjaan",
"categorytree-desc": "Dynamysk troch de [[Special:CategoryTree|kategorystruktuer]] navigearje",
"categorytree-header": "Folje in kategorynamme yn om 'e ynhâld yn in beamstruktuer te sjen. (JavaScript fereaske.)",
"categorytree-category": "Kategory:",
"categorytree-go": "Los",
"categorytree-go": "Beam werjaan",
"categorytree-parents": "Boppelizzend",
"categorytree-mode-label": "Modus:",
"categorytree-mode-categories": "allinne kategoryen",
"categorytree-mode-pages": "alle siden útsein ôfbylden",
"categorytree-mode-pages": "siden útsein bestannen",
"categorytree-mode-all": "alle siden",
"categorytree-collapse": "ynklappe",
"categorytree-expand": "útklappe",
@ -25,10 +28,13 @@
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 B",
"categorytree-num-empty": "leech",
"categorytree-load": "ynlade",
"categorytree-loading": "ynlade...",
"categorytree-load": "lade",
"categorytree-loading": "laden ...",
"categorytree-nothing-found": "neat fûn",
"categorytree-no-subcategories": "gjin ûnderlizzende kategoryen",
"categorytree-no-pages": "gjin siden of ûnderlizzende siden",
"categorytree-not-found": "Kategory <i>$1</i> net fûn"
"categorytree-no-subcategories": "gjin ûnderkategoryen",
"categorytree-no-parent-categories": "gjin boppekategoryen",
"categorytree-no-pages": "gjin siden of ûnderkategoryen",
"categorytree-not-found": "Kategory <i>$1</i> net fûn",
"categorytree-error": "Probleem mei data laden.",
"categorytree-retry": "Efkes wachtsje en besykje it dan nochris."
}

View File

@ -0,0 +1,12 @@
{
"@metadata": {
"authors": [
"RFScott"
]
},
"categorytree-expand": "нихэлиури",
"categorytree-member-counts": "Би $1 {{PLURAL:$1|подкатегорий}}, $2 {{PLURAL:$2|страница}} и $3 {{PLURAL:$3|файл}}",
"categorytree-num-categories": "$1 С",
"categorytree-num-pages": "$1 С",
"categorytree-num-files": "$1 Ф"
}

View File

@ -0,0 +1,12 @@
{
"@metadata": {
"authors": [
"Leonfd1992"
]
},
"categorytree-expand": "eirulaa",
"categorytree-member-counts": "Eesü sulu'u {{PLURAL:$1|1 akotchiraayanüliee|$1 subakotchiraayanüliee}}, {{PLURAL:$2|1 ee'iyalaaya|$2 ee'iyalaaya}}, otta {{PLURAL:$3|1 anaajaalaa|$3 anaajaalaa}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F"
}

View File

@ -22,7 +22,7 @@
"categorytree-expand": "הרחבה",
"categorytree-expand-bullet": "◄",
"categorytree-empty-bullet": "◄",
"categorytree-member-counts": "מכילה {{PLURAL:$1|קטגוריית משנה אחת|$1 קטגוריות משנה}}, {{PLURAL:$2|דף אחד|$2 דפים}}, ו{{PLURAL:$3|קובץ אחד|־$3 קבצים}}",
"categorytree-member-counts": "מכילה {{PLURAL:$1|קטגוריית־משנה אחת|$1 קטגוריות־משנה}}, {{PLURAL:$2|דף אחד|$2 דפים}}, ו{{PLURAL:$3|קובץ אחד|־$3 קבצים}}",
"categorytree-num-categories": "{{PLURAL:$1|קט' אחת|$1 קט'}}",
"categorytree-num-pages": "{{PLURAL:$1|דף אחד|$1 דפים}}",
"categorytree-num-files": "{{PLURAL:$1|קובץ אחד|$1 קב'}}",
@ -32,7 +32,7 @@
"categorytree-nothing-found": "לא נמצא דבר",
"categorytree-no-subcategories": "אין קטגוריות־משנה",
"categorytree-no-parent-categories": "אין קטגוריות הורה",
"categorytree-no-pages": "אין דפים או קטגוריות משנה",
"categorytree-no-pages": "אין דפים או קטגוריות־משנה",
"categorytree-not-found": "הקטגוריה <i>$1</i> לא נמצאה",
"categorytree-error": "בעיה בטעינת הנתונים.",
"categorytree-retry": "נא להמתין מעט ולנסות שוב."

View File

@ -6,23 +6,17 @@
"Thakurji"
]
},
"categorytree": "Category tree",
"categorytree-portlet": "Vibhag",
"categorytree-legend": "Category tree ke dekhao",
"categorytree-desc": "Dynamically navigate the [[Special:CategoryTree|category structure]]",
"categorytree-category": "Vibhag:",
"categorytree-go": "Perr dekhao",
"categorytree-parents": "\nParents",
"categorytree-mode-label": "Mode:",
"categorytree-mode-categories": "Khaali category",
"categorytree-mode-pages": "file ke chhorr ke panna",
"categorytree-mode-all": "Sab panna",
"categorytree-collapse": "Chhota karo",
"categorytree-expand": "Barraa karo",
"categorytree-member-counts": "Isme {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 panna|$2 panna}}, and {{PLURAL:$3|1 file|$3 files}} hae.",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F",
"categorytree-num-empty": "khaali",
"categorytree-load": "load karo",
"categorytree-loading": "load hoe hae ...",

View File

@ -6,7 +6,8 @@
"Ex13",
"MaGa",
"SpeedyGonsales",
"Srdjan m"
"Srdjan m",
"Srđan"
]
},
"categorytree": "Stablasti prikaz hijerarhije kategorija",

View File

@ -1,10 +1,12 @@
{
"@metadata": {
"authors": [
"Iohanen",
"Midnight Gambler"
]
},
"categorytree-expand": "ausklappe",
"categorytree-member-counts": "enthall {{PLURAL:$1|1 Unnerkategorie|$1 Unnerkategorie}}, {{PLURAL:$2|1 Seit|$2 Seite}} un {{PLURAL:$3|1 Datei|$3 Dateie}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 D"

View File

@ -2,6 +2,7 @@
"@metadata": {
"authors": [
"ArmenBakkalian",
"Azniv Stepanian",
"Kareyac"
]
},
@ -11,5 +12,7 @@
"categorytree-member-counts": "Կը պարունակէ {{PLURAL:$1|1 ենթախմբաւորում|$1 ենթախմբաւորում}}, {{PLURAL:$2|1 էջ|$2 էջ}} եւ {{PLURAL:$3|1 նիշք|$3 նիշք}}",
"categorytree-num-categories": "$1 խմբ.",
"categorytree-num-pages": "$1 Էջ",
"categorytree-num-files": "$1 Ն"
"categorytree-num-files": "$1 Ն",
"categorytree-no-subcategories": "ենթաստորոգութիւններ չկան",
"categorytree-no-pages": "ենթաստորոգութիւններ եւ էջեր չկան"
}

View File

@ -2,6 +2,7 @@
"@metadata": {
"authors": [
"Bennylin",
"Daud I.F. Argana",
"Farras",
"IvanLanin",
"Iwan Novirion",
@ -14,7 +15,7 @@
"categorytree-portlet": "Kategori",
"categorytree-legend": "Tampilkan pohon kategori",
"categorytree-desc": "Gadget berbasis AJAX untuk menampilkan [[Special:CategoryTree|struktur kategori]] suatu wiki",
"categorytree-header": "Masukkan suatu nama kategori untuk melihat isinya dalam bentuk pohon.\nHarap diperhatikan bahwa fitur ini memerlukan dukungan JavaScript tingkat lanjut yang dikenal sebagai AJAX.\nJika Anda menggunakan penjelajah web lama, atau mematikan fungsi JavaScript Anda, fitur ini tidak dapat dijalankan.",
"categorytree-header": "Masukkan nama kategori untuk melihat kontennya dalam bentuk struktur pohon.\n(Membutuhkan JavaScript.)",
"categorytree-category": "Kategori:",
"categorytree-go": "Tampilkan",
"categorytree-parents": "Atasan",

View File

@ -1,11 +1,12 @@
{
"@metadata": {
"authors": [
"Dentonius",
"Katxis"
]
},
"categorytree-expand": "expan",
"categorytree-member-counts": "Kantien {{PLURAL:$1|1 subcategory|$1 subcategories}}, {{PLURAL:$2|1 page|$2 pages}}, ah {{PLURAL:$3|1 file|$3 files}}",
"categorytree-expand": "draw dung",
"categorytree-member-counts": "{{PLURAL:$1|$1 subcategory}}, {{PLURAL:$2|page}}, an' {{PLURAL:$3|file}} inna da category yah.",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F"

View File

@ -0,0 +1,13 @@
{
"@metadata": {
"authors": [
"Amire80",
"Kambai Akau"
]
},
"categorytree-expand": "ngaat",
"categorytree-member-counts": "Ji̱ byia̱ {{PLURAL:$1|a̱basa 1|a̱basi̱sa $1}}, {{PLURAL:$2|peji|pejí $2}}, ma̱ng {{PLURAL:$3|fail 1|a̱yaafail $3}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F"
}

View File

@ -6,6 +6,7 @@
"George Animal",
"Ghybu",
"Gomada",
"Guherto",
"Welathêja"
]
},
@ -28,5 +29,5 @@
"categorytree-nothing-found": "ti tişt nehate dîtin",
"categorytree-no-subcategories": "binkategorî tune",
"categorytree-no-pages": "ne rûpelek an jî binkategoriyek",
"categorytree-not-found": "Kategorîya <i>$1</i> nehate dîtin"
"categorytree-not-found": "Kategoriya <i>$1</i> nehate dîtin"
}

View File

@ -33,6 +33,6 @@
"categorytree-no-parent-categories": "Keng Iwwerkategorien",
"categorytree-no-pages": "Keng Säiten oder Ënnerkategorien",
"categorytree-not-found": "Kategorie ''$1'' net fonnt",
"categorytree-error": "Problem beim luede vun den Donneeën.",
"categorytree-error": "Problem beim Luede vun den Donnéeën.",
"categorytree-retry": "Waart wgl. een Ament a probéiert dann nach eng Kéier."
}

View File

@ -10,7 +10,7 @@
"categorytree-portlet": "Категорияр",
"categorytree-legend": "Категориядин ттар къалурун",
"categorytree-category": "Klватlалар:",
"categorytree-go": "Ппарун",
"categorytree-go": "ацӀурун",
"categorytree-parents": "Вини категорияр",
"categorytree-mode-categories": "анжах категорияр",
"categorytree-mode-pages": "файлар галачиз ччинар",

View File

@ -1,9 +1,11 @@
{
"@metadata": {
"authors": [
"Asenoner"
"Asenoner",
"Starladin"
]
},
"categorytree": "Lëgn dles categories",
"categorytree-expand": "slergia",
"categorytree-member-counts": "À dedit {{PLURAL:$1|1 subcategoria|$1 subcategories}}, {{PLURAL:$2|1 plata|$2 plates}}, y {{PLURAL:$3|1 documënt|$3 documënc}}",
"categorytree-num-categories": "$1 C",

View File

@ -1,27 +1,36 @@
{
"@metadata": {
"authors": [
"Dakrismeno"
"Dakrismeno",
"Salvemm el lombard"
]
},
"categorytree": "Àlbur di categurij",
"categorytree-portlet": "Categurij",
"categorytree-legend": "Fàm ved l'àlbur di categurij",
"categorytree-category": "Categuria:",
"categorytree-go": "Mustra l'àlbur",
"categorytree-parents": "Categurij süperiur",
"categorytree-mode-categories": "mustra dumà i categurij",
"categorytree-mode-pages": "tüt i paginn, fö che i sumejanz",
"categorytree-mode-all": "tüt i paginn",
"categorytree-collapse": "sara sü",
"categorytree": "Arbor di categorie",
"categorytree-portlet": "Categorie",
"categorytree-legend": "Fam ved l'arbor di categurie",
"categorytree-desc": "Naviga in manera dinamica la [[Special:CategoryTree|strutura di categorie]]",
"categorytree-header": "Met dent el nom de una categoria per vedè i so contegnud come una strutura a arbor. (a gh'è besogn de JavaScript)",
"categorytree-category": "Categoria:",
"categorytree-go": "Fa vedè l'arbor",
"categorytree-parents": "Categurie superiore",
"categorytree-mode-label": "Manera:",
"categorytree-mode-categories": "mostra doma i categorie",
"categorytree-mode-pages": "tute i pagine, foeura che i imagin",
"categorytree-mode-all": "tute i pagine",
"categorytree-collapse": "comprimm",
"categorytree-expand": "slarga",
"categorytree-member-counts": "El gh'hà dent {{PLURAL:$1|1 sotcategoria|$1 sotcategorie}}, {{PLURAL:$2|1 pagina|$2 pagine}}, e {{PLURAL:$3|1 fail|$3 fail}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F",
"categorytree-num-empty": "voeuja",
"categorytree-load": "carega",
"categorytree-loading": "adree a caregà...",
"categorytree-nothing-found": "nissün resültaa",
"categorytree-no-subcategories": "nissüna suta-categuria",
"categorytree-no-parent-categories": "nissüna categuria süperiur",
"categorytree-no-pages": "mía de paginn o de suta-categurij",
"categorytree-not-found": "Categuria <i>$1</i> mía truada",
"categorytree-error": "Prublema cun 'l caregament di dati.",
"categorytree-retry": "Per piasè, specia un mument e pö pröva ancamò."
"categorytree-nothing-found": "nissun risultad",
"categorytree-no-subcategories": "nissuna sot-categoria",
"categorytree-no-parent-categories": "nissuna categoria superiora",
"categorytree-no-pages": "minga de pagine o de sot-categorie",
"categorytree-not-found": "Categoria <i>$1</i> minga trovada",
"categorytree-error": "Problema cont el caregament di dati.",
"categorytree-retry": "Per piaser, specia un moment e poeu proeuva ancamò."
}

View File

@ -0,0 +1,13 @@
{
"@metadata": {
"authors": [
"Boesenbergia",
"NoiX180"
]
},
"categorytree-expand": "bârbâr",
"categorytree-member-counts": "aghâḍhu {{PLURAL:$1|$1 subkatègori}}, {{PLURAL:$2|$2 kaca}}, bân {{PLURAL:$3|$3 bhengkek}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 K",
"categorytree-num-files": "$1 B"
}

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"David Wadie Fisher-Freberg",
"Iwan Novirion"
]
},
@ -16,10 +17,10 @@
"categorytree-mode-pages": "laman salain berkas",
"categorytree-mode-all": "kasado laman",
"categorytree-collapse": "tutuik",
"categorytree-expand": "bukak",
"categorytree-member-counts": "Barisi {{PLURAL:$1|$1 subkategori}}, {{PLURAL:$2|$2 laman}}, jo {{PLURAL:$3|$3 berkas}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 L",
"categorytree-expand": "kambangkan",
"categorytree-member-counts": "Baisi {{PLURAL:$1|$1 subkategori}}, {{PLURAL:$2|$2 laman}}, jo {{PLURAL:$3|$3 berkas}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 B",
"categorytree-num-empty": "kosong",
"categorytree-load": "muek",

View File

@ -0,0 +1,14 @@
{
"@metadata": {
"authors": [
"ChoiChong",
"Chulsu463",
"Foavi33"
]
},
"categorytree-expand": "nerkimbi",
"categorytree-member-counts": "{{PLURAL:$1|fejergi duwalibun}}, {{PLURAL:$2|fiyelen}}, {{PLURAL:$3|dangse}} baktambi",
"categorytree-num-categories": "$1 hachilan",
"categorytree-num-pages": "$1 fiyelen",
"categorytree-num-files": "$1 fiyelen"
}

View File

@ -3,6 +3,7 @@
"authors": [
"C.R.",
"Chelin",
"Cryptex nap",
"Ruthven"
]
},
@ -19,7 +20,7 @@
"categorytree-mode-pages": "tutte 'e paggene accettuanno l'immaggene",
"categorytree-mode-all": "Tutte 'e ppaggene",
"categorytree-collapse": "annascunne",
"categorytree-expand": "fa vede",
"categorytree-expand": "spanne",
"categorytree-member-counts": "Cuntene {{PLURAL:$1|1 sottocategurìa|$1 sottocategurìe}}, {{PLURAL:$2|1 paggena|$2 paggene}} e {{PLURAL:$3|1 file|$3 file}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",

View File

@ -23,7 +23,7 @@
"categorytree-mode-all": "alle sider",
"categorytree-collapse": "skjul",
"categorytree-expand": "utvid",
"categorytree-member-counts": "Inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}}, og {{PLURAL:$3|én fil|$3 filer}}",
"categorytree-member-counts": "Inneholder {{PLURAL:$1|én underkategori|$1 underkategorier}}, {{PLURAL:$2|én side|$2 sider}} og {{PLURAL:$3|én fil|$3 filer}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 F",

View File

@ -17,7 +17,7 @@
"categorytree-mode-all": "all Sieden",
"categorytree-collapse": "nich ganz wiesen",
"categorytree-expand": "ganz wiesen",
"categorytree-member-counts": "bargt {{PLURAL:$1|ene Ünnerkategorie|$1 Ünnerkategorien}}, {{PLURAL:$2|ene Sied|$2 Sieden}} un {{PLURAL:$3|ene Datei|$3 Datein}}",
"categorytree-member-counts": "bargt {{PLURAL:$1|ene Ünnerkategorie|$1 Ünnerkategorien}}, {{PLURAL:$2|ene Siet|$2 Sieden}} un {{PLURAL:$3|ene Datei|$3 Datein}}",
"categorytree-load": "laden",
"categorytree-loading": "läädt",
"categorytree-nothing-found": "nix funnen",

View File

@ -0,0 +1,13 @@
{
"@metadata": {
"authors": [
"Anugrahgori",
"Slaia"
]
},
"categorytree-expand": "oroma'ö nasa",
"categorytree-member-counts": "So bakha {{PLURAL:$1|1 subkategori|$1 subkategori}}, {{PLURAL:$2|1 nga'örö|$2 nga'örö}}, ba {{PLURAL:$3|1 berkas|$3 berkas}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 N",
"categorytree-num-files": "$1 B"
}

View File

@ -8,9 +8,28 @@
"Youssoufkadialy"
]
},
"categorytree": "ߦߌߟߡߊ ߦߙߌߖߎ",
"categorytree-portlet": "ߦߌߟߡߊ ߟߎ߬",
"categorytree-legend": "ߦߌߟߡߊ ߦߙߌߖߎ ߦߌ߬ߘߊ߬",
"categorytree-category": "ߦߌߟߡߊ:",
"categorytree-go": "ߦߙߌߛߎ߲ ߦߌ߬ߘߊ߬",
"categorytree-parents": "ߡߏߦߌߓߊ߮ ߟߎ߬",
"categorytree-mode-categories": "ߦߌߟߡߊ ߟߎ߬ ߘߐߙߐ߲߫",
"categorytree-mode-all": "ߞߐߜߍ ߟߎ߬ ߓߍ߯",
"categorytree-collapse": "ߞߏߟߊߔߑߛߌ߫",
"categorytree-expand": "ߊ߬ ߘߐߥߙߊ߬",
"categorytree-member-counts": "ߊ߬ ߟߊߞߎ߲ߣߍ߲߫ {{PLURAL:$1|ߦߌߟߡߊߘߎ߯ߟߊ|$1 ߦߌߟߡߊߘߎ߯ߟߊ ߟߎ߬}}, {{PLURAL:$2|1ߞߐߜߍ|$2 ߞߐߜߍ ߟߎ߬}}ߟߋ߫ ߡߊ߬߸ ߊ߬ ߣߌ߫ {{PLURAL:$3|1 ߞߐߕߐ߮|$3 ߞߐߕߐ߮ ߟߎ߬}}",
"categorytree-num-categories": "$1 ߦߌߟߡߊ",
"categorytree-num-categories": "ߦߌߟ $1",
"categorytree-num-pages": "ߞߐߜߍ $1",
"categorytree-num-files": "$1 ߞߕ"
"categorytree-num-files": "ߞߕ $1",
"categorytree-num-empty": "ߘߐߞߏߟߏ߲",
"categorytree-load": "ߟߊߢߎ߲߫",
"categorytree-loading": "ߟߊ߬ߢߎ߲߬ߠߌ߲ ߦߵߌ ߘߐ߫...",
"categorytree-nothing-found": "ߝߏߦߌ߬ ߡߊ߫ ߛߐ߬ߘߐ߲߫",
"categorytree-no-subcategories": "ߦߌߟߡߊߙߋ߲ ߠߎ߬ ߝߋ߲߫ ߕߴߦߋ߲߬",
"categorytree-no-parent-categories": "ߡߏߦߌߓߊ߯ ߦߌߟߡߊ ߟߎ߬ ߝߋ߲߫ ߕߴߦߋ߲߬",
"categorytree-no-pages": "ߞߐߜߍ߫ ߕߴߦߋ߲߬ ߥߟߊ߫ ߦߌߟߡߊߙߋ߲ ߠߎ߬",
"categorytree-not-found": "ߦߌߟߡߊ <i>$1</i> ߡߊ߫ ߛߐ߬ߘߐ߲߫",
"categorytree-error": "ߝߙߋߞߋ ߞߊ߬ ߓߟߏߡߟߊ ߟߊߢߎ߲ ߕߴߌ ߘߐ߫.",
"categorytree-retry": "ߥߛߎ߬ߣߍ߲߫ ߘߐߞߐ߬ߣߐ߲߫ ߖߊ߰ߣߌ߲߫ ߞߣߊ߬ ߕߴߊ߬ ߡߊߝߍߣߍ߲߫ ߠߊ߫ ߕߎ߲߯ߣߌ߲߫."
}

View File

@ -0,0 +1,13 @@
{
"@metadata": {
"authors": [
"Maammee",
"Oromoo"
]
},
"categorytree-expand": "babal'isi",
"categorytree-member-counts": "{{PLURAL:$1|ramaddii nuusa 1|ramaddi nuusa $1}}, {{PLURAL:$2|fuula 1|fuula $2}}, fi {{PLURAL:$3|faayila 1|faayila $3}} of keessaa qaba",
"categorytree-num-categories": "$1 R",
"categorytree-num-pages": "$1 F",
"categorytree-num-files": "$1 F"
}

View File

@ -0,0 +1,12 @@
{
"@metadata": {
"authors": [
"ObaTango"
]
},
"categorytree-expand": "Ekspandé",
"categorytree-member-counts": "Ta kontené {{PLURAL:$1|1 supkategoria\n|$1 supkategoria}}, {{PLURAL:$2|1 página|$2 página}}, i {{PLURAL:$3|1 fail|$3 fail}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-num-files": "$1 F"
}

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"Borichèt",
"Bèrto 'd Sèra",
"Dragonòt"
]
@ -9,7 +10,7 @@
"categorytree-portlet": "Categorìe",
"categorytree-legend": "Mosta l'erbo dle categorìe",
"categorytree-desc": "Nàviga dinamicament la [[Special:CategoryTree|strutura dle categorìe]]",
"categorytree-header": "Ch'a buta ël nòm ëd na categorìa për ës-ciairene ij contnù e la strutura. Ch'a ten-a present che përchè sòn a travaja a-i va na fonsion Javascript avansà ch'as ciama AJAX. Se un a l'ha un navigator vej ò pura a l'ha nen abilità Javascript sossì a travaja nen.",
"categorytree-header": "Ch'a buta ël nòm ëd na categorìa për ës-ciairene ij contnù com na strutura a erbo. (A-i é da manca ëd JavaScript).",
"categorytree-category": "Categorìa:",
"categorytree-go": "Deurbe l'erbo",
"categorytree-parents": "Cé",

View File

@ -9,18 +9,18 @@
"categorytree-portlet": "گٹھاں",
"categorytree-legend": "گٹھ لین وکھاؤ",
"categorytree-desc": "ویکھ کے [[Special:CategoryTree|گٹھاں]] دی کھوج کرو",
"categorytree-header": "کسی گٹھ دا ناں لکھو تاکے ایدا مال رکھ ورگی مورت چ ویکھو۔\nNote that this requires advanced JavaScript functionality known as AJAX.\nIf you have a very old browser, or have JavaScript disabled, it will not work.",
"categorytree-header": "کسی گٹھ دا ناں لکھو تاکے ایہدا مال رکھ ورگی مورت وچ ویکھو۔\nNote that this requires advanced JavaScript functionality known as AJAX.\nIf you have a very old browser, or have JavaScript disabled, it will not work.",
"categorytree-category": "گٹھ:",
"categorytree-go": "لین وکھاؤ",
"categorytree-parents": "وڈوڈیرے",
"categorytree-mode-categories": "صرف گٹھاں",
"categorytree-mode-pages": "فائلاں بنا صفے",
"categorytree-mode-all": "سارے صفے",
"categorytree-mode-all": "سارے صفحے",
"categorytree-collapse": "مک گیا",
"categorytree-expand": "ودھاؤ",
"categorytree-expand-bullet": "◄",
"categorytree-empty-bullet": "◄",
"categorytree-member-counts": "ایدے چ {{PLURAL:$1|1 نکی گٹھ|$1 گٹھاں}}, {{PLURAL:$2|1 صفحہ|$2 صفحے}}, تے {{PLURAL:$3|1 فائل|$3 فائلاں}} ہیگیاں نیں۔",
"categorytree-member-counts": "ایہدے وچ {{PLURAL:$1|1 نکی گٹھ|$1 گٹھاں}}, {{PLURAL:$2|1 صفحہ|$2 صفحے}}, تے {{PLURAL:$3|1 فائل|$3 فائلاں}} ہیگیاں نیں۔",
"categorytree-num-categories": "$1 سی",
"categorytree-num-pages": "$1 پی",
"categorytree-num-files": "$1 ایف",

View File

@ -5,6 +5,7 @@
"Dicionarista",
"Eduardo Addad de Oliveira",
"Eduardo.mps",
"Eduardoaddad",
"Felipe L. Ewald",
"Rafael Vargas",
555

View File

@ -39,7 +39,7 @@
"categorytree-expand": "Tooltip for the \"expand\" button.\n{{Identical|Expand}}",
"categorytree-collapse-bullet": "{{notranslate}}",
"categorytree-expand-bullet": "For right-to-left scripts, set this message to the single character ◄ . Otherwise, do not translate this message. Does not support wiki-syntax, html or entity references. \n{{optional}}",
"categorytree-empty-bullet": "Prefix used before category names in category pages when the number of subcategories (or something) is 0, to indicate that there is no sub-tree of items to expand. Does not support wiki-syntax, html or entity references.",
"categorytree-empty-bullet": "{{optional}}\nPrefix used before category names in category pages when the number of subcategories (or something) is 0, to indicate that there is no sub-tree of items to expand. Does not support wiki-syntax, html or entity references.",
"categorytree-page-bullet": "{{notranslate}}",
"categorytree-member-counts": "Tooltip showing a detailed summary of subcategory member counts. Parameters:\n* $1 - number of subcategories\n* $2 - number of pages (without subcategories and files)\n* $3 - number of files\n* $4 - (Unused) total number of members\n* $5 - (Unused) members to be shown in the tree, depending on mode\nUse with <nowiki>{{PLURAL}}</nowiki>",
"categorytree-member-num": "{{notranslate}}\nHowever, if needed, you can localise the parentheses.\n\n(From https://www.mediawiki.org/wiki/Extension:CategoryTree#categorytree-member-num):\nBy default, when listing subcategories on a category page, each subcategory is followed by an integer indicating how many subcategories lie beneath it:\n<pre>\nMy category name (5)\n</pre>\nYou can change this behavior by overriding this system message. Parameters:\n* $1 - (Unused) number of subcategories\n* $2 - (Unused) number of articles (not including category pages or file pages)\n* $3 - (Unused) number of uploaded files\n* $4 - (Unused) total number of member pages, including category pages and file pages\n* $5 - (Varies depending on CategoryTree mode....Can someone describe it?)\n\nTip: Use the ParserFunctions extension (https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions) to provide if/then/else logic to display different parts conditionally. For example:\n<pre>\n{{#ifeq:$1|0||$1 categories}}\n</pre>",

View File

@ -1,9 +1,11 @@
{
"@metadata": {
"authors": [
"Amara-Amaziɣ"
"Amara-Amaziɣ",
"Syphax Amaynu"
]
},
"categorytree-expand": "Semɣer",
"categorytree-num-pages": "$1 ⵙⵏ",
"categorytree-num-files": "$1 ⴼⵢⵍ"
}

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"Adehertogh"
]
},
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S"
}

View File

@ -1,11 +1,14 @@
{
"@metadata": {
"authors": [
"Amara-Amaziɣ"
"Amara-Amaziɣ",
"Ayour2002",
"Lhoussine AIT TAYFST"
]
},
"categorytree-expand": "ⵙⵙⵉⵎⵖⵓⵔ",
"categorytree-num-categories": "$1 ⴳⵢ",
"categorytree-num-pages": "$1 ⵙⵏ",
"categorytree-num-files": "$1 ⴼ"
"categorytree-expand": "Simɣur",
"categorytree-member-counts": "Gis {{PLURAL:$1|1 ddu-anaw|$1 ddu-anawen}}, {{PLURAL:$2|1 tawlaft|$2 tiwlafin}}, d {{PLURAL:$3|1 afaylu|$3 ifayluten}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 F"
}

View File

@ -2,9 +2,11 @@
"@metadata": {
"authors": [
"Helix84",
"Jaroslav.micek",
"Sudo77(new)",
"Teslaton",
"Vlad5250"
"Vlad5250",
"Yardom78"
]
},
"categorytree": "Strom kategórií",
@ -24,7 +26,7 @@
"categorytree-member-counts": "obsahuje {{PLURAL:$1|1 podkategóriu|$1 podkategórie|$1 podkategórií}}, {{PLURAL:$2|1 stránku|$2 stránky|$2 stránok}} a {{PLURAL:$3|1 súbor|$3 súbory|$3 súborov}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 B",
"categorytree-num-files": "$1 S",
"categorytree-num-empty": "prázdna",
"categorytree-load": "načítať",
"categorytree-loading": "načítava sa",

View File

@ -13,7 +13,7 @@
"categorytree-mode-label": "طور:",
"categorytree-mode-categories": "صرف ونکیاں",
"categorytree-mode-pages": "فائلاں دے علاوہ ورقے",
"categorytree-mode-all": "سارے مقالے",
"categorytree-mode-all": "سارے ورقے",
"categorytree-collapse": "لکاؤ",
"categorytree-expand": "ودھاؤ",
"categorytree-member-counts": "ایندے وچ {{PLURAL:$1|1 ذیلی ونکی|$1 ذیلی ونکیاں}}، {{PLURAL:$2|1 ورقہ|$2 ورقے}} تے {{PLURAL:$3|1 فائل|$3 فائلیں}} موجود ہن/ہے۔",

View File

@ -1,8 +1,24 @@
{
"@metadata": {
"authors": [
"Ghiutun"
"Ghiutun",
"Äberlausitzer"
]
},
"categorytree-num-categories": "$1&nbsp;Kat."
"categorytree-legend": "Zeige Kategorienboom",
"categorytree-category": "Kategorie",
"categorytree-parents": "Aeberkategorien",
"categorytree-mode-label": "Modus:",
"categorytree-mode-pages": "Seita außer Dateien",
"categorytree-mode-all": "olle Seita",
"categorytree-expand": "ausklappen",
"categorytree-member-counts": "enthält {{PLURAL:$1|1 Underkategorie|$1 Underkategorien}}, {{PLURAL:$2|1 Seite|$2 Seita}} und {{PLURAL:$3|1 Datei|$3 Dateien}}",
"categorytree-num-categories": "$1&nbsp;K",
"categorytree-num-pages": "$1&nbsp;S",
"categorytree-num-files": "$1&nbsp;D",
"categorytree-load": "loada",
"categorytree-loading": "loade …",
"categorytree-nothing-found": "'s wurde nischts gefunda.",
"categorytree-no-subcategories": "Kenne Underkategorien",
"categorytree-no-parent-categories": "Kenne Aeberkategorien"
}

View File

@ -2,9 +2,12 @@
"@metadata": {
"authors": [
"Mlolthuis",
"Trondtr"
"Trondtr",
"Yupik"
]
},
"categorytree-portlet": "Luokah",
"categorytree-category": "Luokka:",
"categorytree-expand": "čääiti",
"categorytree-member-counts": "tuálá sistees {{PLURAL:$1|1 vyeliluoka|$1 vyeliluoka}}, {{PLURAL:$2|1 siijđo|$2 siijđo}} já {{PLURAL:$3|1 tiätuvuárhá|$3 tiätuvuárhá}}",
"categorytree-num-categories": "$1 K",

View File

@ -0,0 +1,12 @@
{
"@metadata": {
"authors": [
"Yupik"
]
},
"categorytree-portlet": "Kategoria",
"categorytree-category": "Kategoria:",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 T"
}

View File

@ -6,6 +6,7 @@
"Maax"
]
},
"categorytree-portlet": "Qaybaha",
"categorytree-category": "Qeybta:",
"categorytree-expand": "sii balaari",
"categorytree-member-counts": "Waxay ka koobantahay{{PLURAL:$1|1 qayb hoosaad|$1 qaybo hoosaad}}, {{PLURAL:$2|1 bog|$2 boggag}}, iyo {{PLURAL:$3|1 feyl|$3feylal}}",

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"Kizule",
"Michaello",
"Milicevic01",
"Rancher",

View File

@ -0,0 +1,12 @@
{
"@metadata": {
"authors": [
"এম আবু সাঈদ"
]
},
"categorytree-expand": "ꠝꠦꠟꠣꠅ",
"categorytree-member-counts": "{{PLURAL:$1|1 subcategory|$1 ꠍꠣꠛꠇꠦꠐꠣꠉꠞꠤ}}, {{PLURAL:$2|1 ꠚꠣꠔꠣꠁꠘ|$2 ꠚꠣꠔꠣꠁꠘ}}, ꠀꠞ {{PLURAL:$3|1 ꠚꠣꠁꠟ|$3 ꠚꠣꠁꠟ}} ꠀꠍꠦ",
"categorytree-num-categories": "$1 ꠍꠤ",
"categorytree-num-pages": "$1 ꠙꠤ",
"categorytree-num-files": "$1 ꠄꠚ"
}

View File

@ -5,13 +5,13 @@
]
},
"categorytree-portlet": "መደባት",
"categorytree-category": "መደብ",
"categorytree-mode-all": "ኩ ገጻት",
"categorytree-category": "መደብ",
"categorytree-mode-all": "ኩሎም ገጻት",
"categorytree-collapse": "ኣክብ",
"categorytree-expand": "ዘርግሕ",
"categorytree-num-categories": "$1 ም",
"categorytree-num-pages": "$1 ገ",
"categorytree-num-empty": "ባዶ",
"categorytree-load": "ጸዓ",
"categorytree-load": "ጸዓ",
"categorytree-loading": "ይጽዕን ኣሎ..."
}

View File

@ -18,6 +18,9 @@
"categorytree-collapse": "ýygna",
"categorytree-expand": "giňelt",
"categorytree-member-counts": "{{PLURAL:$1|1 kiçi kategoriýany|$1 kiçi kategoriýany}}, {{PLURAL:$2|1 sahypany|$2 sahypany}} we {{PLURAL:$3|1 faýly|$3 faýly}} öz içine alýar",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 F",
"categorytree-load": "ýükle",
"categorytree-loading": "ýüklenýär...",
"categorytree-nothing-found": "hiç zat tapylmady",

View File

@ -2,8 +2,10 @@
"@metadata": {
"authors": [
"AnakngAraw",
"GinawaSaHapon",
"Lam-ang",
"Stranger195"
"Stranger195",
"Yivan000"
]
},
"categorytree": "Puno ng kaurian",
@ -11,28 +13,28 @@
"categorytree-legend": "Ipakita ang puno ng kaurian",
"categorytree-desc": "Masiglang libutin ang [[Special:CategoryTree|kayarian ng kaurian]]",
"categorytree-header": "Maglagay (magpasok) ng isang pangalan ng kaurian upang makita ang nilalaman nito bilang isang kayarian ng isang puno.\nTandaan na nangangailangan ito ng mas masulong na tungkuling pang-JavaScript na kilala bilang AJAX.\nKapag mayroon kang isang napakatandang/napakalumang pantingin-tingin (''browser''), o hindi pinapagana ang JavaScript, hindi ito magagawa/walang mangyayari.",
"categorytree-category": "Kaurian:",
"categorytree-category": "Kategorya:",
"categorytree-go": "Ipakita ang puno",
"categorytree-parents": "Mga magulang",
"categorytree-mode-categories": "mga kaurian lamang",
"categorytree-mode-pages": "mga pahina maliban sa mga talaksan",
"categorytree-mode-all": "lahat ng mga pahina",
"categorytree-collapse": "tiklupin",
"categorytree-expand": "palaparin",
"categorytree-expand": "palawakin",
"categorytree-expand-bullet": "►",
"categorytree-empty-bullet": "►",
"categorytree-member-counts": "Naglalaman ng {{PLURAL:$1|1 subkategorya|$1 subkategorya}}, {{PLURAL:$2|1 pahina|$2 mga pahina}}, at {{PLURAL:$3|1 talaksan|$3 mga talaksan}}",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 P",
"categorytree-member-counts": "Naglalaman ng {{PLURAL:$1|1 subkategorya|$1 (na) subkategorya}}, {{PLURAL:$2|1 pahina|$2 (na) pahina}}, at {{PLURAL:$3|1 file|$3 (na) file}}",
"categorytree-num-categories": "$1 ka.",
"categorytree-num-pages": "$1 pa.",
"categorytree-num-files": "$1 F",
"categorytree-num-empty": "walang laman",
"categorytree-load": "ikarga",
"categorytree-loading": "ikinakarga…",
"categorytree-nothing-found": "walang natagpuan",
"categorytree-no-subcategories": "walang kabahaging mga kaurian",
"categorytree-no-subcategories": "walang mga subkategorya",
"categorytree-no-parent-categories": "walang magulang (pinagmulan) na mga kaurian",
"categorytree-no-pages": "walang mga pahina o kabahaging mga kaurian/subkaurian (subkategorya)",
"categorytree-not-found": "Hindi natagpuan ang kauriang <i>$1</i>",
"categorytree-not-found": "Hindi natagpuan ang kategoryang <i>$1</i>",
"categorytree-error": "May suliranin sa pagkakarga ng dato.",
"categorytree-retry": "Maghintay lamang ng isang sandali at subuking muli."
}

View File

@ -1,34 +1,36 @@
{
"@metadata": {
"authors": [
"Amire80",
"Patriot Kur",
"QeneralĞasım",
"Гусейн"
]
},
"categorytree": "Kateqoriyon do",
"categorytree-portlet": "Kateqoriyon",
"categorytree-legend": "Категоријон до нишо дој",
"categorytree-legend": "Kateqoriyon do nişo doy",
"categorytree-header": "Категоријә номи бынывыштән, ијән ав нишо бәбе бәнә до.\nЫм мымкуне, гирәм шымә браузерәдә AJAX һесте.\nГирәм шымәку браузери канә рәвојәте ја JavaScript быријә быә, жинә категоријон нишо дој бәнә до әбыни.",
"categorytree-category": "Kateqoriya",
"categorytree-go": "Бо жәј",
"categorytree-parents": "Пыә-моә категоријон",
"categorytree-mode-categories": "әнҹәх категоријон",
"categorytree-mode-pages": "сывој фајлон",
"categorytree-parents": "Pıə-moə kateqoriyon",
"categorytree-mode-categories": "əncəx kateqoriyon",
"categorytree-mode-pages": "sıvoy faylon",
"categorytree-mode-all": "həmə səhifon",
"categorytree-collapse": "бурмә кардеј",
"categorytree-expand": "һовуж кардеј",
"categorytree-member-counts": "Дыләдә һестыше {{PLURAL:$1|1 жинә категоријә|$1 жинә категоријә}}, {{PLURAL:$2|1 сәһифә|$2 сәһифә}}, ијән {{PLURAL:$3|1 фајл|$3 фајл}}",
"categorytree-num-categories": "$1 К",
"categorytree-num-pages": "$1 С",
"categorytree-collapse": "burmə kardey",
"categorytree-expand": "hovuj okarde",
"categorytree-member-counts": "Dılədə hestəşe{{PLURAL:$1|1 jinə tispir|$1 jinə tispir}}, {{PLURAL:$2|1 səhifə|$2 səhifə}}, iyən{{PLURAL:$3|1 fayl|$3 fayl}}",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 S",
"categorytree-num-files": "$1 F",
"categorytree-num-empty": "təy",
"categorytree-load": "бо жәј",
"categorytree-loading": "бо карде...",
"categorytree-nothing-found": "Ым категоријәдә жинә категоријә ни.",
"categorytree-no-subcategories": "категоријон жинтон ни",
"categorytree-no-parent-categories": "пыә-моә категоријә ни",
"categorytree-no-pages": "нә мәғолә һесте, нә жинә категоријон",
"categorytree-not-found": "Категоријә «$1» пәјдо быәни.",
"categorytree-error": "Мәлумоти бо карде сәһве.",
"categorytree-retry": "Быһамијән, и тикә чәш быкан ијән икәрән осә быкан."
"categorytree-no-subcategories": "kateqoriyon jinton ni",
"categorytree-no-parent-categories": "valideyni katiqoriya ni",
"categorytree-no-pages": "nə məğolə heste, nə jinə kateqoriyon",
"categorytree-not-found": "Katiqoriya «$1» pəydo bıəni",
"categorytree-error": "Məlumoti bo karde səhve.",
"categorytree-retry": "Bıhamiyən, i tikə çəş bıkan iyən ikərən osə bıkan."
}

View File

@ -7,6 +7,7 @@
"Karduelis",
"Khutuck",
"Mach",
"MuratTheTurkish",
"Runningfridgesrule",
"Stultiwikia",
"Superyetkin",
@ -39,6 +40,6 @@
"categorytree-no-parent-categories": "üst kategori yok",
"categorytree-no-pages": "alt kategori veya madde yok",
"categorytree-not-found": "<i>\"$1\"</i> isimli kategori bulunamadı",
"categorytree-error": "Bilgi yüklenmesi ile bir problem var.",
"categorytree-error": "Veri yükleme sorunu.",
"categorytree-retry": "Lütfen kısa süre için bekleyin, sonra bir kere daha deneyin."
}

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"Hakim1bal",
"Tifinaghes"
]
},
@ -13,7 +14,7 @@
"categorytree-expand": "ⴰⴼⵔⴷⵉⵙ",
"categorytree-num-categories": "$1 C",
"categorytree-num-pages": "$1 ⵜ",
"categorytree-num-files": "$1 ",
"categorytree-num-files": "$1 F",
"categorytree-num-empty": "ⵓⵔ ⴷⵉⵙ ⴰⵎⵢⴰ",
"categorytree-nothing-found": "ⵓⵔ ⵉⵍⵍⴰ ⵓⵎⵢⴰ"
}

View File

@ -31,7 +31,7 @@
"categorytree-no-subcategories": "nissuna sotocategoria",
"categorytree-no-parent-categories": "nissuna categoria superior",
"categorytree-no-pages": "nissuna voçe né sotocategoria",
"categorytree-not-found": "Categoria <i>$1</i> mìa catà",
"categorytree-not-found": "Categoria <i>$1</i> mìa catada",
"categorytree-error": "Ghe xe un problema nel caricamento dei dati.",
"categorytree-retry": "Speta n'atimo e dopo próa de novo."
}

View File

@ -1,12 +1,13 @@
{
"@metadata": {
"authors": [
"Adeliine",
"Võrok"
]
},
"categorytree-expand": "näüdäq",
"categorytree-member-counts": "Tan om {{PLURAL:$1|1 allkatõgooria|$1 allkatõgooriat}}, {{PLURAL:$2|1 leht|$2 lehte}}, ja {{PLURAL:$3|1 fail|$3 faili}}",
"categorytree-num-categories": "$1 L",
"categorytree-num-categories": "$1 K",
"categorytree-num-pages": "$1 L",
"categorytree-num-files": "$1 F"
}

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"Akamycoco",
"Lalotahes"
]
},
@ -8,7 +9,7 @@
"categorytree-category": " aapolen:",
"categorytree-mode-all": " saeboeh ye:myen",
"categorytree-expand": "pawSika:",
"categorytree-member-counts": "hani saeboeh $1 ka aapolan 、$2 ka ye:myen ki $3 ka tangan",
"categorytree-member-counts": "hani saeboeh {{PLURAL:$1|1 subcategory|$1 subcategories}} ka aapolan, {{PLURAL:$2|1 page|$2 pages}} ka ye:myen ki {{PLURAL:$3|1 file|$3 files}} ka tangan",
"categorytree-num-categories": "$1 aapolen",
"categorytree-num-pages": "$1 ye:myen",
"categorytree-num-files": "$1 tangan"

View File

@ -3,6 +3,7 @@
"authors": [
"CRCHF",
"Ktchankt",
"Moon0319",
"Shinjiman",
"Yueman"
]
@ -13,7 +14,7 @@
"categorytree-desc": "一個以AJAX為主嘅小工具去顯示響一個wiki嘅[[Special:CategoryTree|分類架構]]",
"categorytree-header": "輸入分類名去睇佢嘅樹形結構內容。需要JavaScript",
"categorytree-category": "分類",
"categorytree-go": "載入",
"categorytree-go": "撈緊",
"categorytree-parents": "父分類",
"categorytree-mode-label": "模式:",
"categorytree-mode-categories": "只顯示分類",
@ -27,7 +28,7 @@
"categorytree-num-files": "$1 F",
"categorytree-num-empty": "空",
"categorytree-load": "載入",
"categorytree-loading": "載入緊…",
"categorytree-loading": "緊…",
"categorytree-nothing-found": "搵唔到任何嘢",
"categorytree-no-subcategories": "冇細分類",
"categorytree-no-parent-categories": "冇父分類",

View File

@ -81,7 +81,9 @@ class ApiCategoryTree extends ApiBase {
* @return string HTML
*/
private function getHTML( CategoryTree $ct, Title $title, $depth, Config $ctConfig ) {
$cache = MediaWikiServices::getInstance()->getMainWANObjectCache();
$services = MediaWikiServices::getInstance();
$cache = $services->getMainWANObjectCache();
$langConv = $services->getLanguageConverterFactory()->getLanguageConverter();
return $cache->getWithSetCallback(
$cache->makeKey(
@ -89,7 +91,7 @@ class ApiCategoryTree extends ApiBase {
md5( $title->getDBkey() ),
md5( $ct->getOptionsAsCacheKey( $depth ) ),
$this->getLanguage()->getCode(),
MediaWikiServices::getInstance()->getContentLanguage()->getExtraHashOptions(),
$langConv->getExtraHashOptions(),
$ctConfig->get( 'RenderHashAppend' )
),
$cache::TTL_DAY,

View File

@ -701,8 +701,7 @@ class CategoryTree {
}
}
$s .= Xml::closeElement( 'div' );
$s .= Xml::closeElement( 'div' );
$s .= Xml::closeElement( 'div' ) . Xml::closeElement( 'div' );
return $s;
}

View File

@ -30,14 +30,12 @@ class CategoryTreeCategoryViewer extends CategoryViewer {
* @return CategoryTree
*/
private function getCategoryTree() {
global $wgCategoryTreeCategoryPageOptions;
if ( !isset( $this->categorytree ) ) {
if ( !CategoryTreeHooks::shouldForceHeaders() ) {
CategoryTree::setHeaders( $this->getOutput() );
}
$this->categorytree = new CategoryTree( $wgCategoryTreeCategoryPageOptions );
$this->categorytree = new CategoryTree( $this->getConfig()->get( 'CategoryTreeCategoryPageOptions' ) );
}
return $this->categorytree;

View File

@ -28,6 +28,8 @@
*/
class CategoryTreeHooks {
private const EXTENSION_DATA_FLAG = 'CategoryTree';
/**
* @internal For use by CategoryTreeCategoryViewer and CategoryTreePage only!
* @return bool
@ -110,9 +112,14 @@ class CategoryTreeHooks {
$argv[$k] = $v;
}
// now handle just like a <categorytree> tag
$html = self::parserHook( $cat, $argv, $parser );
return [ $html, 'noparse' => true, 'isHTML' => true ];
if ( $parser->getOutputType() === Parser::OT_PREPROCESS ) {
return Html::openElement( 'categorytree', $argv ) .
$cat . Html::closeElement( 'categorytree' );
} else {
// now handle just like a <categorytree> tag
$html = self::parserHook( $cat, $argv, $parser );
return [ $html, 'noparse' => true, 'isHTML' => true ];
}
}
/**
@ -138,7 +145,6 @@ class CategoryTreeHooks {
/**
* Entry point for the <categorytree> tag parser hook.
* This loads CategoryTreeFunctions.php and calls CategoryTree::getTag()
* @suppress PhanUndeclaredProperty ParserOutput->mCategoryTreeTag
* @param string $cat
* @param array $argv
* @param Parser|null $parser
@ -155,7 +161,7 @@ class CategoryTreeHooks {
) {
if ( $parser ) {
# flag for use by CategoryTreeHooks::parserOutput
$parser->mOutput->mCategoryTreeTag = true;
$parser->getOutput()->setExtensionData( self::EXTENSION_DATA_FLAG, true );
}
$ct = new CategoryTree( $argv );
@ -179,8 +185,7 @@ class CategoryTreeHooks {
/**
* Hook callback that injects messages and things into the <head> tag,
* if needed in the current page.
* Does nothing if $parserOutput->mCategoryTreeTag is not set
* @suppress PhanUndeclaredProperty ParserOutput->mCategoryTreeTag
* Does nothing if self::EXTENSION_DATA_FLAG is not set on $parserOutput extension data.
* @param OutputPage $outputPage
* @param ParserOutput $parserOutput
*/
@ -189,7 +194,7 @@ class CategoryTreeHooks {
// Skip, we've already set the headers unconditionally
return;
}
if ( !empty( $parserOutput->mCategoryTreeTag ) ) {
if ( $parserOutput->getExtensionData( self::EXTENSION_DATA_FLAG ) ) {
CategoryTree::setHeaders( $outputPage );
}
}
@ -240,8 +245,8 @@ class CategoryTreeHooks {
foreach ( $categories as $category => $type ) {
$links[$type][] = self::parserHook( $category, $wgCategoryTreePageCategoryOptions, null, null, true );
CategoryTree::setHeaders( $out );
}
CategoryTree::setHeaders( $out );
return false;
}

View File

@ -22,8 +22,6 @@
* @author Daniel Kinzler, brightbyte.de
*/
use MediaWiki\MediaWikiServices;
/**
* Special page for the CategoryTree extension, an AJAX based gadget
* to display the category structure of a wiki
@ -31,13 +29,22 @@ use MediaWiki\MediaWikiServices;
class CategoryTreePage extends SpecialPage {
public $target = '';
/** @var SearchEngineFactory */
private $searchEngineFactory;
/**
* @var CategoryTree
*/
public $tree = null;
public function __construct() {
/**
* @param SearchEngineFactory $searchEngineFactory
*/
public function __construct(
SearchEngineFactory $searchEngineFactory
) {
parent::__construct( 'CategoryTree' );
$this->searchEngineFactory = $searchEngineFactory;
}
/**
@ -45,12 +52,10 @@ class CategoryTreePage extends SpecialPage {
* @return mixed
*/
private function getOption( $name ) {
global $wgCategoryTreeDefaultOptions;
if ( $this->tree ) {
return $this->tree->getOption( $name );
} else {
return $wgCategoryTreeDefaultOptions[$name];
return $this->getConfig()->get( 'CategoryTreeDefaultOptions' )[$name];
}
}
@ -59,8 +64,6 @@ class CategoryTreePage extends SpecialPage {
* @param string|null $par Parameters passed to the page
*/
public function execute( $par ) {
global $wgCategoryTreeDefaultOptions, $wgCategoryTreeSpecialPageOptions;
$this->setHeaders();
$this->addHelpLink( 'Extension:CategoryTree' );
$request = $this->getRequest();
@ -79,11 +82,14 @@ class CategoryTreePage extends SpecialPage {
$this->target = trim( $this->target );
$options = [];
$config = $this->getConfig();
# grab all known options from the request. Normalization is done by the CategoryTree class
foreach ( $wgCategoryTreeDefaultOptions as $option => $default ) {
if ( isset( $wgCategoryTreeSpecialPageOptions[$option] ) ) {
$default = $wgCategoryTreeSpecialPageOptions[$option];
$categoryTreeDefaultOptions = $config->get( 'CategoryTreeDefaultOptions' );
$categoryTreeSpecialPageOptions = $config->get( 'CategoryTreeSpecialPageOptions' );
foreach ( $categoryTreeDefaultOptions as $option => $default ) {
if ( isset( $categoryTreeSpecialPageOptions[$option] ) ) {
$default = $categoryTreeSpecialPageOptions[$option];
}
$options[$option] = $request->getVal( $option, $default );
@ -200,7 +206,7 @@ class CategoryTreePage extends SpecialPage {
// No prefix suggestion outside of category namespace
return [];
}
$searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
$searchEngine = $this->searchEngineFactory->create();
$searchEngine->setLimitOffset( $limit, $offset );
// Autocomplete subpage the same as a normal search, but just for categories
$searchEngine->setNamespaces( [ NS_CATEGORY ] );

View File

@ -85,7 +85,7 @@
*/
function attachHandler( $content ) {
$content.find( '.CategoryTreeToggle' )
.click( handleNode )
.on( 'click', handleNode )
.attr( 'title', function () {
return mw.msg(
$( this ).data( 'ct-state' ) === 'collapsed' ?
@ -134,7 +134,8 @@
$link.data( 'ct-loaded', true );
$children.empty().append(
$( '<i class="CategoryTreeNotice"></i>' )
$( '<i>' )
.addClass( 'CategoryTreeNotice' )
.text( mw.msg( 'categorytree-loading' ) )
);
@ -184,7 +185,7 @@
data = mw.msg( 'categorytree-nothing-found' );
}
$data = $( '<i class="CategoryTreeNotice"></i>' ).text( data );
$data = $( '<i>' ).addClass( 'CategoryTreeNotice' ).text( data );
} else {
$data = $( $.parseHTML( data ) );
attachHandler( $data );
@ -204,6 +205,7 @@
$( function () {
// Attach click handler for sidebar
// eslint-disable-next-line no-jquery/no-global-selector
attachHandler( $( '#p-categorytree-portlet' ) );
} );

View File

@ -1,8 +1,8 @@
{
"require-dev": {
"mediawiki/mediawiki-codesniffer": "31.0.0",
"mediawiki/mediawiki-phan-config": "0.10.2",
"mediawiki/minus-x": "1.1.0",
"mediawiki/mediawiki-codesniffer": "35.0.0",
"mediawiki/mediawiki-phan-config": "0.10.6",
"mediawiki/minus-x": "1.1.1",
"php-parallel-lint/php-console-highlighter": "0.5.0",
"php-parallel-lint/php-parallel-lint": "1.2.0"
},

View File

@ -15,7 +15,7 @@
"license-name": "GPL-2.0-or-later",
"type": "parserhook",
"requires": {
"MediaWiki": ">= 1.34.0"
"MediaWiki": ">= 1.35.0"
},
"MessagesDirs": {
"Cite": [
@ -24,14 +24,21 @@
]
},
"Hooks": {
"APIQuerySiteInfoGeneralInfo": "Cite\\Hooks\\CiteHooks::onAPIQuerySiteInfoGeneralInfo",
"ContentHandlerDefaultModelFor": "Cite\\Hooks\\CiteHooks::onContentHandlerDefaultModelFor",
"ParserAfterParse": "Cite\\Hooks\\CiteParserHooks::onParserAfterParse",
"ParserClearState": "Cite\\Hooks\\CiteParserHooks::onParserClearStateOrCloned",
"ParserCloned": "Cite\\Hooks\\CiteParserHooks::onParserClearStateOrCloned",
"ParserFirstCallInit": "Cite\\Hooks\\CiteParserHooks::onParserFirstCallInit",
"ResourceLoaderGetConfigVars": "Cite\\Hooks\\CiteHooks::onResourceLoaderGetConfigVars",
"ResourceLoaderRegisterModules": "Cite\\Hooks\\CiteHooks::onResourceLoaderRegisterModules"
"APIQuerySiteInfoGeneralInfo": "main",
"ContentHandlerDefaultModelFor": "main",
"ParserAfterParse": "parser",
"ParserClearState": "parser",
"ParserCloned": "parser",
"ParserFirstCallInit": "parser",
"ResourceLoaderGetConfigVars": "main"
},
"HookHandlers": {
"main": {
"class": "Cite\\Hooks\\CiteHooks"
},
"parser": {
"class": "Cite\\Hooks\\CiteParserHooks"
}
},
"ResourceModules": {
"ext.cite.styles": {
@ -56,6 +63,143 @@
"desktop",
"mobile"
]
},
"ext.cite.visualEditor.core": {
"localBasePath": "modules/ve-cite",
"remoteExtPath": "Cite/modules/ve-cite",
"scripts": [
"ve.dm.MWReferenceModel.js",
"ve.dm.MWReferencesListNode.js",
"ve.dm.MWReferenceNode.js",
"ve.ce.MWReferencesListNode.js",
"ve.ce.MWReferenceNode.js",
"ve.ui.MWReferencesListCommand.js"
],
"styles": [
"ve.ce.MWReferencesListNode.css",
"ve.ce.MWReferenceNode.css"
],
"dependencies": [
"ext.visualEditor.mwcore",
"ext.visualEditor.mwtransclusion"
],
"messages": [
"cite-ve-referenceslist-isempty",
"cite-ve-referenceslist-isempty-default",
"cite-ve-referenceslist-missingref",
"cite-ve-referenceslist-missingref-in-list",
"cite-ve-referenceslist-missingreflist",
"visualeditor-internal-list-diff-default-group-name-mwreference",
"visualeditor-internal-list-diff-group-name-mwreference"
],
"targets": [
"desktop",
"mobile"
]
},
"ext.cite.visualEditor.data": {
"class": "Cite\\ResourceLoader\\CiteDataModule"
},
"ext.cite.visualEditor": {
"localBasePath": "modules/ve-cite",
"remoteExtPath": "Cite/modules/ve-cite",
"scripts": [
"ve.ui.MWReferenceGroupInputWidget.js",
"ve.ui.MWReferenceSearchWidget.js",
"ve.ui.MWReferenceResultWidget.js",
"ve.ui.MWUseExistingReferenceCommand.js",
"ve.ui.MWCitationDialog.js",
"ve.ui.MWReferencesListDialog.js",
"ve.ui.MWReferenceDialog.js",
"ve.ui.MWReferenceDialogTool.js",
"ve.ui.MWCitationDialogTool.js",
"ve.ui.MWReferenceContextItem.js",
"ve.ui.MWReferencesListContextItem.js",
"ve.ui.MWCitationContextItem.js",
"ve.ui.MWCitationAction.js",
"ve.ui.MWReference.init.js",
"ve.ui.MWCitationNeededContextItem.js"
],
"styles": [
"ve.ui.MWReferenceDialog.css",
"ve.ui.MWReferenceContextItem.css",
"ve.ui.MWReferenceGroupInputWidget.css",
"ve.ui.MWReferenceResultWidget.css",
"ve.ui.MWReferenceSearchWidget.css",
"ve.ui.MWCitationDialogTool.css"
],
"dependencies": [
"oojs-ui.styles.icons-alerts",
"oojs-ui.styles.icons-editing-citation",
"oojs-ui.styles.icons-interactions",
"ext.cite.visualEditor.core",
"ext.cite.visualEditor.data",
"ext.cite.style",
"ext.cite.styles",
"ext.visualEditor.mwtransclusion",
"ext.visualEditor.mediawiki"
],
"messages": [
"cite-ve-changedesc-ref-group-both",
"cite-ve-changedesc-ref-group-from",
"cite-ve-changedesc-ref-group-to",
"cite-ve-changedesc-reflist-group-both",
"cite-ve-changedesc-reflist-group-from",
"cite-ve-changedesc-reflist-group-to",
"cite-ve-changedesc-reflist-responsive-set",
"cite-ve-changedesc-reflist-responsive-unset",
"cite-ve-citationneeded-button",
"cite-ve-citationneeded-description",
"cite-ve-citationneeded-reason",
"cite-ve-citationneeded-title",
"cite-ve-dialog-reference-editing-reused",
"cite-ve-dialog-reference-editing-reused-long",
"cite-ve-dialog-reference-options-group-label",
"cite-ve-dialog-reference-options-group-placeholder",
"cite-ve-dialog-reference-options-name-label",
"cite-ve-dialog-reference-options-responsive-label",
"cite-ve-dialog-reference-options-section",
"cite-ve-dialog-reference-placeholder",
"cite-ve-dialog-reference-title",
"cite-ve-dialog-reference-useexisting-tool",
"cite-ve-dialog-referenceslist-contextitem-description-general",
"cite-ve-dialog-referenceslist-contextitem-description-named",
"cite-ve-dialog-referenceslist-title",
"cite-ve-dialogbutton-citation-educationpopup-title",
"cite-ve-dialogbutton-citation-educationpopup-text",
"cite-ve-dialogbutton-reference-full-label",
"cite-ve-dialogbutton-reference-tooltip",
"cite-ve-dialogbutton-reference-title",
"cite-ve-dialogbutton-referenceslist-tooltip",
"cite-ve-reference-input-placeholder",
"cite-ve-toolbar-group-label",
"cite-ve-othergroup-item",
"parentheses",
"word-separator"
],
"targets": [
"desktop",
"mobile"
]
},
"ext.cite.ux-enhancements": {
"localBasePath": "modules",
"remoteExtPath": "Cite/modules",
"scripts": [
"ext.cite.a11y.js",
"ext.cite.highlighting.js",
"ext.cite.tracking.js"
],
"styles": [
"ext.cite.a11y.css",
"ext.cite.highlighting.css"
],
"messages": [
"cite_reference_link_prefix",
"cite_references_link_accessibility_label",
"cite_references_link_many_accessibility_label",
"cite_references_link_accessibility_back_label"
]
}
},
"ResourceFileModulePaths": {
@ -86,8 +230,8 @@
},
"EventLogging": {
"Schemas": {
"ReferencePreviewsBaseline": 19489336,
"ReferencePreviewsCite": 19489328
"ReferencePreviewsBaseline": "/analytics/legacy/referencepreviewsbaseline/1.0.0",
"ReferencePreviewsCite": "/analytics/legacy/referencepreviewscite/1.0.0"
}
},
"VisualEditor": {

Some files were not shown because too many files have changed in this diff Show More