Merge "Add kbp language code"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 25 May 2017 21:04:35 +0000 (21:04 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 25 May 2017 21:04:36 +0000 (21:04 +0000)
205 files changed:
.gitmodules [new file with mode: 0644]
autoload.php
extensions/.gitignore [deleted file]
extensions/AbuseFilter [new submodule]
extensions/AccountAudit [new submodule]
extensions/ActiveAbstract [new submodule]
extensions/AntiSpoof [new submodule]
extensions/ApiFeatureUsage [new submodule]
extensions/Babel [new submodule]
extensions/BetaFeatures [new submodule]
extensions/BounceHandler [new submodule]
extensions/Calendar [new submodule]
extensions/Campaigns [new submodule]
extensions/Capiunto [new submodule]
extensions/Cards [new submodule]
extensions/CategoryTree [new submodule]
extensions/CentralAuth [new submodule]
extensions/CentralNotice [new submodule]
extensions/CharInsert [new submodule]
extensions/CheckUser [new submodule]
extensions/CirrusSearch [new submodule]
extensions/Cite [new submodule]
extensions/CiteThisPage [new submodule]
extensions/Citoid [new submodule]
extensions/CleanChanges [new submodule]
extensions/CodeEditor [new submodule]
extensions/CodeReview [new submodule]
extensions/Cognate [new submodule]
extensions/CollaborationKit [new submodule]
extensions/Collection [new submodule]
extensions/CommonsMetadata [new submodule]
extensions/ConfirmEdit [new submodule]
extensions/ContactPage [new submodule]
extensions/ContentTranslation [new submodule]
extensions/ContributionTracking [new submodule]
extensions/CreditsSource [new submodule]
extensions/Dashiki [new submodule]
extensions/DisableAccount [new submodule]
extensions/Disambiguator [new submodule]
extensions/DismissableSiteNotice [new submodule]
extensions/DonationInterface [new submodule]
extensions/DoubleWiki [new submodule]
extensions/DynamicSidebar [new submodule]
extensions/Echo [new submodule]
extensions/EducationProgram [new submodule]
extensions/Elastica [new submodule]
extensions/ElectronPdfService [new submodule]
extensions/EventBus [new submodule]
extensions/EventLogging [new submodule]
extensions/ExtensionDistributor [new submodule]
extensions/FeaturedFeeds [new submodule]
extensions/FlaggedRevs [new submodule]
extensions/Flow [new submodule]
extensions/FundraiserLandingPage [new submodule]
extensions/FundraisingTranslateWorkflow [new submodule]
extensions/GWToolset [new submodule]
extensions/Gadgets [new submodule]
extensions/GeoCrumbs [new submodule]
extensions/GeoData [new submodule]
extensions/GettingStarted [new submodule]
extensions/GlobalBlocking [new submodule]
extensions/GlobalCssJs [new submodule]
extensions/GlobalUsage [new submodule]
extensions/GlobalUserPage [new submodule]
extensions/GoogleNewsSitemap [new submodule]
extensions/Graph [new submodule]
extensions/GuidedTour [new submodule]
extensions/ImageMap [new submodule]
extensions/InputBox [new submodule]
extensions/Insider [new submodule]
extensions/Interwiki [new submodule]
extensions/InterwikiSorting [new submodule]
extensions/Josa [new submodule]
extensions/JsonConfig [new submodule]
extensions/Kartographer [new submodule]
extensions/LabeledSectionTransclusion [new submodule]
extensions/LandingCheck [new submodule]
extensions/LdapAuthentication [new submodule]
extensions/Linter [new submodule]
extensions/LiquidThreads [new submodule]
extensions/Listings [new submodule]
extensions/LocalisationUpdate [new submodule]
extensions/LoginNotify [new submodule]
extensions/MapSources [new submodule]
extensions/MassMessage [new submodule]
extensions/Math [new submodule]
extensions/MobileApp [new submodule]
extensions/MobileFrontend [new submodule]
extensions/MultimediaViewer [new submodule]
extensions/MwEmbedSupport [new submodule]
extensions/NavigationTiming [new submodule]
extensions/NewUserMessage [new submodule]
extensions/Nuke [new submodule]
extensions/OATHAuth [new submodule]
extensions/OAuth [new submodule]
extensions/ORES [new submodule]
extensions/OpenStackManager [new submodule]
extensions/PageAssessments [new submodule]
extensions/PageImages [new submodule]
extensions/PageTriage [new submodule]
extensions/PageViewInfo [new submodule]
extensions/PagedTiffHandler [new submodule]
extensions/ParserFunctions [new submodule]
extensions/ParserMigration [new submodule]
extensions/ParsoidBatchAPI [new submodule]
extensions/PdfHandler [new submodule]
extensions/Petition [new submodule]
extensions/Poem [new submodule]
extensions/PoolCounter [new submodule]
extensions/Popups [new submodule]
extensions/ProofreadPage [new submodule]
extensions/QuickSurveys [new submodule]
extensions/Quiz [new submodule]
extensions/README [deleted file]
extensions/RSS [new submodule]
extensions/RelatedArticles [new submodule]
extensions/RelatedSites [new submodule]
extensions/Renameuser [new submodule]
extensions/RevisionSlider [new submodule]
extensions/SandboxLink [new submodule]
extensions/Score [new submodule]
extensions/Scribunto [new submodule]
extensions/SearchExtraNS [new submodule]
extensions/SecurePoll [new submodule]
extensions/ShortUrl [new submodule]
extensions/SiteMatrix [new submodule]
extensions/SpamBlacklist [new submodule]
extensions/SubPageList3 [new submodule]
extensions/SubpageSortkey [new submodule]
extensions/SyntaxHighlight_GeSHi [new submodule]
extensions/TemplateData [new submodule]
extensions/TemplateSandbox [new submodule]
extensions/TextExtracts [new submodule]
extensions/Thanks [new submodule]
extensions/TimedMediaHandler [new submodule]
extensions/TitleBlacklist [new submodule]
extensions/TocTree [new submodule]
extensions/TorBlock [new submodule]
extensions/Translate [new submodule]
extensions/TranslationNotifications [new submodule]
extensions/TrustedXFF [new submodule]
extensions/TwoColConflict [new submodule]
extensions/UnicodeConverter [new submodule]
extensions/UniversalLanguageSelector [new submodule]
extensions/UploadWizard [new submodule]
extensions/UploadsLink [new submodule]
extensions/UrlShortener [new submodule]
extensions/UserMerge [new submodule]
extensions/VectorBeta [new submodule]
extensions/VipsScaler [new submodule]
extensions/VisualEditor [new submodule]
extensions/WikiEditor [new submodule]
extensions/WikiLove [new submodule]
extensions/Wikidata [new submodule]
extensions/WikidataPageBanner [new submodule]
extensions/WikimediaEvents [new submodule]
extensions/WikimediaIncubator [new submodule]
extensions/WikimediaMaintenance [new submodule]
extensions/WikimediaMessages [new submodule]
extensions/XAnalytics [new submodule]
extensions/ZeroBanner [new submodule]
extensions/ZeroPortal [new submodule]
extensions/cldr [new submodule]
extensions/intersection [new submodule]
extensions/timeline [new submodule]
extensions/wikihiero [new submodule]
includes/DefaultSettings.php
includes/WikiMap.php
includes/WikiReference.php [new file with mode: 0644]
includes/Xml.php
includes/XmlJsCode.php [new file with mode: 0644]
includes/api/ApiParse.php
includes/api/i18n/es.json
includes/api/i18n/he.json
includes/api/i18n/hu.json
includes/api/i18n/ko.json
includes/api/i18n/pt.json
includes/api/i18n/zh-hans.json
includes/cache/MessageCache.php
includes/utils/ZipDirectoryReader.php
includes/utils/ZipDirectoryReaderError.php [new file with mode: 0644]
languages/i18n/ast.json
languages/i18n/atj.json
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/es.json
languages/i18n/fa.json
languages/i18n/fr.json
languages/i18n/fy.json
languages/i18n/id.json
languages/i18n/lij.json
languages/i18n/my.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/tr.json
maintenance/rebuildrecentchanges.php
resources/Resources.php
skins/CologneBlue [new submodule]
skins/Modern [new submodule]
skins/MonoBook [new submodule]
skins/Nostalgia [new submodule]
skins/Vector [new submodule]
vendor [new submodule]

diff --git a/.gitmodules b/.gitmodules
new file mode 100644 (file)
index 0000000..67bc0b4
--- /dev/null
@@ -0,0 +1,672 @@
+[submodule "extensions/CentralNotice"]
+       path = extensions/CentralNotice
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CentralNotice
+       branch = wmf_deploy
+[submodule "extensions/Wikidata"]
+       path = extensions/Wikidata
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Wikidata
+       branch = wmf/1.30.0-wmf.1
+[submodule "extensions/AbuseFilter"]
+       path = extensions/AbuseFilter
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/AccountAudit"]
+       path = extensions/AccountAudit
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/AccountAudit
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ActiveAbstract"]
+       path = extensions/ActiveAbstract
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ActiveAbstract
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/AntiSpoof"]
+       path = extensions/AntiSpoof
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/AntiSpoof
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ApiFeatureUsage"]
+       path = extensions/ApiFeatureUsage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ApiFeatureUsage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Babel"]
+       path = extensions/Babel
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Babel
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/BetaFeatures"]
+       path = extensions/BetaFeatures
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/BetaFeatures
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/BounceHandler"]
+       path = extensions/BounceHandler
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/BounceHandler
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Calendar"]
+       path = extensions/Calendar
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Calendar
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Campaigns"]
+       path = extensions/Campaigns
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Campaigns
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Capiunto"]
+       path = extensions/Capiunto
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Capiunto
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Cards"]
+       path = extensions/Cards
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Cards
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CategoryTree"]
+       path = extensions/CategoryTree
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CategoryTree
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CentralAuth"]
+       path = extensions/CentralAuth
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CentralAuth
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CharInsert"]
+       path = extensions/CharInsert
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CharInsert
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CheckUser"]
+       path = extensions/CheckUser
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CirrusSearch"]
+       path = extensions/CirrusSearch
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CirrusSearch
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Cite"]
+       path = extensions/Cite
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CiteThisPage"]
+       path = extensions/CiteThisPage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CiteThisPage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Citoid"]
+       path = extensions/Citoid
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Citoid
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/cldr"]
+       path = extensions/cldr
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/cldr
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CleanChanges"]
+       path = extensions/CleanChanges
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CleanChanges
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Cognate"]
+       path = extensions/Cognate
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Cognate
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CodeEditor"]
+       path = extensions/CodeEditor
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeEditor
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CodeReview"]
+       path = extensions/CodeReview
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CodeReview
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CollaborationKit"]
+       path = extensions/CollaborationKit
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CollaborationKit
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Collection"]
+       path = extensions/Collection
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Collection
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CommonsMetadata"]
+       path = extensions/CommonsMetadata
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CommonsMetadata
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ConfirmEdit"]
+       path = extensions/ConfirmEdit
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmEdit
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ContactPage"]
+       path = extensions/ContactPage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ContactPage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ContentTranslation"]
+       path = extensions/ContentTranslation
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ContentTranslation
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ContributionTracking"]
+       path = extensions/ContributionTracking
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ContributionTracking
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/CreditsSource"]
+       path = extensions/CreditsSource
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/CreditsSource
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Dashiki"]
+       path = extensions/Dashiki
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Dashiki
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/DisableAccount"]
+       path = extensions/DisableAccount
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DisableAccount
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Disambiguator"]
+       path = extensions/Disambiguator
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Disambiguator
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/DismissableSiteNotice"]
+       path = extensions/DismissableSiteNotice
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DismissableSiteNotice
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/DonationInterface"]
+       path = extensions/DonationInterface
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DonationInterface
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/DoubleWiki"]
+       path = extensions/DoubleWiki
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DoubleWiki
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/DynamicSidebar"]
+       path = extensions/DynamicSidebar
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/DynamicSidebar
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Echo"]
+       path = extensions/Echo
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/EducationProgram"]
+       path = extensions/EducationProgram
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/EducationProgram
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Elastica"]
+       path = extensions/Elastica
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Elastica
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ElectronPdfService"]
+       path = extensions/ElectronPdfService
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ElectronPdfService
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/EventBus"]
+       path = extensions/EventBus
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/EventBus
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/EventLogging"]
+       path = extensions/EventLogging
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/EventLogging
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ExtensionDistributor"]
+       path = extensions/ExtensionDistributor
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtensionDistributor
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/FeaturedFeeds"]
+       path = extensions/FeaturedFeeds
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/FeaturedFeeds
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/FlaggedRevs"]
+       path = extensions/FlaggedRevs
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/FlaggedRevs
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Flow"]
+       path = extensions/Flow
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Flow
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/FundraiserLandingPage"]
+       path = extensions/FundraiserLandingPage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/FundraiserLandingPage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/FundraisingTranslateWorkflow"]
+       path = extensions/FundraisingTranslateWorkflow
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/FundraisingTranslateWorkflow
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Gadgets"]
+       path = extensions/Gadgets
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Gadgets
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GeoCrumbs"]
+       path = extensions/GeoCrumbs
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GeoCrumbs
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GeoData"]
+       path = extensions/GeoData
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GeoData
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GettingStarted"]
+       path = extensions/GettingStarted
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GettingStarted
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Graph"]
+       path = extensions/Graph
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Graph
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GlobalBlocking"]
+       path = extensions/GlobalBlocking
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalBlocking
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GlobalCssJs"]
+       path = extensions/GlobalCssJs
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalCssJs
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GlobalUsage"]
+       path = extensions/GlobalUsage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUsage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GlobalUserPage"]
+       path = extensions/GlobalUserPage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUserPage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GoogleNewsSitemap"]
+       path = extensions/GoogleNewsSitemap
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GoogleNewsSitemap
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GuidedTour"]
+       path = extensions/GuidedTour
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GuidedTour
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/GWToolset"]
+       path = extensions/GWToolset
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/GWToolset
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ImageMap"]
+       path = extensions/ImageMap
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ImageMap
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/InputBox"]
+       path = extensions/InputBox
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/InputBox
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Insider"]
+       path = extensions/Insider
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Insider
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/intersection"]
+       path = extensions/intersection
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/intersection
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Interwiki"]
+       path = extensions/Interwiki
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Interwiki
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/InterwikiSorting"]
+       path = extensions/InterwikiSorting
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/InterwikiSorting
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Josa"]
+       path = extensions/Josa
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Josa
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/JsonConfig"]
+       path = extensions/JsonConfig
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/JsonConfig
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Kartographer"]
+       path = extensions/Kartographer
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Kartographer
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/LabeledSectionTransclusion"]
+       path = extensions/LabeledSectionTransclusion
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/LandingCheck"]
+       path = extensions/LandingCheck
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LandingCheck
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/LdapAuthentication"]
+       path = extensions/LdapAuthentication
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LdapAuthentication
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Linter"]
+       path = extensions/Linter
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Linter
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/LiquidThreads"]
+       path = extensions/LiquidThreads
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LiquidThreads
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Listings"]
+       path = extensions/Listings
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Listings
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/LocalisationUpdate"]
+       path = extensions/LocalisationUpdate
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LocalisationUpdate
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/LoginNotify"]
+       path = extensions/LoginNotify
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/LoginNotify
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/MapSources"]
+       path = extensions/MapSources
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MapSources
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/MassMessage"]
+       path = extensions/MassMessage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MassMessage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Math"]
+       path = extensions/Math
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/MobileApp"]
+       path = extensions/MobileApp
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileApp
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/MobileFrontend"]
+       path = extensions/MobileFrontend
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MobileFrontend
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/MultimediaViewer"]
+       path = extensions/MultimediaViewer
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MultimediaViewer
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/MwEmbedSupport"]
+       path = extensions/MwEmbedSupport
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/MwEmbedSupport
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/NavigationTiming"]
+       path = extensions/NavigationTiming
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/NavigationTiming
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/NewUserMessage"]
+       path = extensions/NewUserMessage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/NewUserMessage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Nuke"]
+       path = extensions/Nuke
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Nuke
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/OAuth"]
+       path = extensions/OAuth
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/OAuth
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/OATHAuth"]
+       path = extensions/OATHAuth
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/OATHAuth
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ORES"]
+       path = extensions/ORES
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ORES
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/OpenStackManager"]
+       path = extensions/OpenStackManager
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenStackManager
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PagedTiffHandler"]
+       path = extensions/PagedTiffHandler
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PagedTiffHandler
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PageAssessments"]
+       path = extensions/PageAssessments
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PageAssessments
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PageImages"]
+       path = extensions/PageImages
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PageImages
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PageTriage"]
+       path = extensions/PageTriage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PageTriage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PageViewInfo"]
+       path = extensions/PageViewInfo
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PageViewInfo
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ParserFunctions"]
+       path = extensions/ParserFunctions
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserFunctions
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ParserMigration"]
+       path = extensions/ParserMigration
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserMigration
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ParsoidBatchAPI"]
+       path = extensions/ParsoidBatchAPI
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ParsoidBatchAPI
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PdfHandler"]
+       path = extensions/PdfHandler
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PdfHandler
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Petition"]
+       path = extensions/Petition
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Petition
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Poem"]
+       path = extensions/Poem
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Poem
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/PoolCounter"]
+       path = extensions/PoolCounter
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/PoolCounter
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Popups"]
+       path = extensions/Popups
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ProofreadPage"]
+       path = extensions/ProofreadPage
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ProofreadPage
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/QuickSurveys"]
+       path = extensions/QuickSurveys
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/QuickSurveys
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Quiz"]
+       path = extensions/Quiz
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Quiz
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/RelatedArticles"]
+       path = extensions/RelatedArticles
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/RelatedArticles
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/RelatedSites"]
+       path = extensions/RelatedSites
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/RelatedSites
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Renameuser"]
+       path = extensions/Renameuser
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Renameuser
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/RevisionSlider"]
+       path = extensions/RevisionSlider
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/RevisionSlider
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/RSS"]
+       path = extensions/RSS
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/RSS
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SandboxLink"]
+       path = extensions/SandboxLink
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SandboxLink
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Scribunto"]
+       path = extensions/Scribunto
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Score"]
+       path = extensions/Score
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Score
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SearchExtraNS"]
+       path = extensions/SearchExtraNS
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SearchExtraNS
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SecurePoll"]
+       path = extensions/SecurePoll
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SecurePoll
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ShortUrl"]
+       path = extensions/ShortUrl
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ShortUrl
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SiteMatrix"]
+       path = extensions/SiteMatrix
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SiteMatrix
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SpamBlacklist"]
+       path = extensions/SpamBlacklist
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SpamBlacklist
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SubPageList3"]
+       path = extensions/SubPageList3
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SubPageList3
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SubpageSortkey"]
+       path = extensions/SubpageSortkey
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SubpageSortkey
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/SyntaxHighlight_GeSHi"]
+       path = extensions/SyntaxHighlight_GeSHi
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TemplateData"]
+       path = extensions/TemplateData
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TemplateSandbox"]
+       path = extensions/TemplateSandbox
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateSandbox
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TextExtracts"]
+       path = extensions/TextExtracts
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TextExtracts
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Thanks"]
+       path = extensions/Thanks
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Thanks
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TimedMediaHandler"]
+       path = extensions/TimedMediaHandler
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TimedMediaHandler
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/timeline"]
+       path = extensions/timeline
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/timeline
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TitleBlacklist"]
+       path = extensions/TitleBlacklist
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TocTree"]
+       path = extensions/TocTree
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TocTree
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TorBlock"]
+       path = extensions/TorBlock
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TorBlock
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/Translate"]
+       path = extensions/Translate
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/Translate
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TranslationNotifications"]
+       path = extensions/TranslationNotifications
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TranslationNotifications
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TrustedXFF"]
+       path = extensions/TrustedXFF
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TrustedXFF
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/TwoColConflict"]
+       path = extensions/TwoColConflict
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/TwoColConflict
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/UnicodeConverter"]
+       path = extensions/UnicodeConverter
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/UnicodeConverter
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/UniversalLanguageSelector"]
+       path = extensions/UniversalLanguageSelector
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/UniversalLanguageSelector
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/UploadsLink"]
+       path = extensions/UploadsLink
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/UploadsLink
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/UploadWizard"]
+       path = extensions/UploadWizard
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/UploadWizard
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/UrlShortener"]
+       path = extensions/UrlShortener
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/UrlShortener
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/UserMerge"]
+       path = extensions/UserMerge
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/UserMerge
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/VectorBeta"]
+       path = extensions/VectorBeta
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/VectorBeta
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/VipsScaler"]
+       path = extensions/VipsScaler
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/VipsScaler
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/VisualEditor"]
+       path = extensions/VisualEditor
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikidataPageBanner"]
+       path = extensions/WikidataPageBanner
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikidataPageBanner
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikiEditor"]
+       path = extensions/WikiEditor
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiEditor
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/wikihiero"]
+       path = extensions/wikihiero
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/wikihiero
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikiLove"]
+       path = extensions/WikiLove
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiLove
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikimediaEvents"]
+       path = extensions/WikimediaEvents
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaEvents
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikimediaIncubator"]
+       path = extensions/WikimediaIncubator
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaIncubator
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikimediaMaintenance"]
+       path = extensions/WikimediaMaintenance
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaMaintenance
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/WikimediaMessages"]
+       path = extensions/WikimediaMessages
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/WikimediaMessages
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/XAnalytics"]
+       path = extensions/XAnalytics
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/XAnalytics
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ZeroBanner"]
+       path = extensions/ZeroBanner
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ZeroBanner
+       branch = wmf/1.30.0-wmf.2
+[submodule "extensions/ZeroPortal"]
+       path = extensions/ZeroPortal
+       url = https://gerrit.wikimedia.org/r/mediawiki/extensions/ZeroPortal
+       branch = wmf/1.30.0-wmf.2
+[submodule "skins/CologneBlue"]
+       path = skins/CologneBlue
+       url = https://gerrit.wikimedia.org/r/mediawiki/skins/CologneBlue
+       branch = wmf/1.30.0-wmf.2
+[submodule "skins/MonoBook"]
+       path = skins/MonoBook
+       url = https://gerrit.wikimedia.org/r/mediawiki/skins/MonoBook
+       branch = wmf/1.30.0-wmf.2
+[submodule "skins/Modern"]
+       path = skins/Modern
+       url = https://gerrit.wikimedia.org/r/mediawiki/skins/Modern
+       branch = wmf/1.30.0-wmf.2
+[submodule "skins/Nostalgia"]
+       path = skins/Nostalgia
+       url = https://gerrit.wikimedia.org/r/mediawiki/skins/Nostalgia
+       branch = wmf/1.30.0-wmf.2
+[submodule "skins/Vector"]
+       path = skins/Vector
+       url = https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
+       branch = wmf/1.30.0-wmf.2
+[submodule "vendor"]
+       path = vendor
+       url = https://gerrit.wikimedia.org/r/mediawiki/vendor
+       branch = wmf/1.30.0-wmf.2
index 9bac689..6d2b66b 100644 (file)
@@ -1599,7 +1599,7 @@ $wgAutoloadLocalClasses = [
        'WikiImporter' => __DIR__ . '/includes/import/WikiImporter.php',
        'WikiMap' => __DIR__ . '/includes/WikiMap.php',
        'WikiPage' => __DIR__ . '/includes/page/WikiPage.php',
-       'WikiReference' => __DIR__ . '/includes/WikiMap.php',
+       'WikiReference' => __DIR__ . '/includes/WikiReference.php',
        'WikiRevision' => __DIR__ . '/includes/import/WikiRevision.php',
        'WikiStatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
        'WikiTextStructure' => __DIR__ . '/includes/content/WikiTextStructure.php',
@@ -1674,11 +1674,11 @@ $wgAutoloadLocalClasses = [
        'XhprofData' => __DIR__ . '/includes/libs/XhprofData.php',
        'Xml' => __DIR__ . '/includes/Xml.php',
        'XmlDumpWriter' => __DIR__ . '/includes/export/XmlDumpWriter.php',
-       'XmlJsCode' => __DIR__ . '/includes/Xml.php',
+       'XmlJsCode' => __DIR__ . '/includes/XmlJsCode.php',
        'XmlSelect' => __DIR__ . '/includes/XmlSelect.php',
        'XmlTypeCheck' => __DIR__ . '/includes/libs/mime/XmlTypeCheck.php',
        'ZhConverter' => __DIR__ . '/languages/classes/LanguageZh.php',
        'ZipDirectoryReader' => __DIR__ . '/includes/utils/ZipDirectoryReader.php',
-       'ZipDirectoryReaderError' => __DIR__ . '/includes/utils/ZipDirectoryReader.php',
+       'ZipDirectoryReaderError' => __DIR__ . '/includes/utils/ZipDirectoryReaderError.php',
        'profile_point' => __DIR__ . '/profileinfo.php',
 ];
diff --git a/extensions/.gitignore b/extensions/.gitignore
deleted file mode 100644 (file)
index f847620..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-*
-!README
-!.gitignore
diff --git a/extensions/AbuseFilter b/extensions/AbuseFilter
new file mode 160000 (submodule)
index 0000000..1274cca
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 1274cca65043ab473db492a0183b7b0da96d5984
diff --git a/extensions/AccountAudit b/extensions/AccountAudit
new file mode 160000 (submodule)
index 0000000..577fe4c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 577fe4c80e0e823cc5f7388c6e5053efa6147078
diff --git a/extensions/ActiveAbstract b/extensions/ActiveAbstract
new file mode 160000 (submodule)
index 0000000..251e239
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 251e239b45c23510ebda1c621dafb438676ffb35
diff --git a/extensions/AntiSpoof b/extensions/AntiSpoof
new file mode 160000 (submodule)
index 0000000..862e51f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 862e51f647df9c4f0352dfe0d36afc1e54909499
diff --git a/extensions/ApiFeatureUsage b/extensions/ApiFeatureUsage
new file mode 160000 (submodule)
index 0000000..1406c45
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 1406c454c112c79e010392b6fe56669f1ad1b9a2
diff --git a/extensions/Babel b/extensions/Babel
new file mode 160000 (submodule)
index 0000000..f61ebdd
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f61ebdd63ec16f88c8421a1ac8177f6a0ba416a9
diff --git a/extensions/BetaFeatures b/extensions/BetaFeatures
new file mode 160000 (submodule)
index 0000000..c3e627a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c3e627ab3d3c7fa1fc337c3fc984cb555bc930a5
diff --git a/extensions/BounceHandler b/extensions/BounceHandler
new file mode 160000 (submodule)
index 0000000..958444a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 958444a2bcc98b338d818538d72c65333e1aeb3e
diff --git a/extensions/Calendar b/extensions/Calendar
new file mode 160000 (submodule)
index 0000000..27e4444
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 27e44440414a48218a19d055a080b6d0a924bfbb
diff --git a/extensions/Campaigns b/extensions/Campaigns
new file mode 160000 (submodule)
index 0000000..6cc5ced
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6cc5ced332d485704a3d83b320fa6a145b7dc147
diff --git a/extensions/Capiunto b/extensions/Capiunto
new file mode 160000 (submodule)
index 0000000..12bf4b0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 12bf4b0181a930e2763203b342a18d638d8a1af7
diff --git a/extensions/Cards b/extensions/Cards
new file mode 160000 (submodule)
index 0000000..64085e8
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 64085e88a5783b34001218911e195b301703cc14
diff --git a/extensions/CategoryTree b/extensions/CategoryTree
new file mode 160000 (submodule)
index 0000000..b1771cc
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b1771cc0fde1fa6f519b164384467516e238e078
diff --git a/extensions/CentralAuth b/extensions/CentralAuth
new file mode 160000 (submodule)
index 0000000..837a7c5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 837a7c5b3f056509869f1cfcddee7cda7c25da14
diff --git a/extensions/CentralNotice b/extensions/CentralNotice
new file mode 160000 (submodule)
index 0000000..0cbfa06
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 0cbfa060f0553ec7fe69b2f3df28081b5a470431
diff --git a/extensions/CharInsert b/extensions/CharInsert
new file mode 160000 (submodule)
index 0000000..b426e82
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b426e823134c13a7f2437667d45044f40f62966e
diff --git a/extensions/CheckUser b/extensions/CheckUser
new file mode 160000 (submodule)
index 0000000..efc02c4
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit efc02c4c94ef4bb666c7010a39db335aed06a149
diff --git a/extensions/CirrusSearch b/extensions/CirrusSearch
new file mode 160000 (submodule)
index 0000000..8f3e79a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8f3e79a56bd0fa81e1482fd83cd64ed1f22ffbdd
diff --git a/extensions/Cite b/extensions/Cite
new file mode 160000 (submodule)
index 0000000..831786a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 831786a556ec7fc6f7186c51977e68fe72e027cf
diff --git a/extensions/CiteThisPage b/extensions/CiteThisPage
new file mode 160000 (submodule)
index 0000000..7308457
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 7308457da81a0b02dad0371fa0c729d7eefae81c
diff --git a/extensions/Citoid b/extensions/Citoid
new file mode 160000 (submodule)
index 0000000..18664d3
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 18664d3687bb133e65fda83628c7e1672e1ba0e8
diff --git a/extensions/CleanChanges b/extensions/CleanChanges
new file mode 160000 (submodule)
index 0000000..d643349
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit d6433493e5581723ecb771b7ac2832d2c7d3fb1f
diff --git a/extensions/CodeEditor b/extensions/CodeEditor
new file mode 160000 (submodule)
index 0000000..c0c5d7b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c0c5d7b3ab11abeb425a741f0318379a114ce3d2
diff --git a/extensions/CodeReview b/extensions/CodeReview
new file mode 160000 (submodule)
index 0000000..f75a06d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f75a06d0d0c950b46fa7b302cdc2dfc21113892c
diff --git a/extensions/Cognate b/extensions/Cognate
new file mode 160000 (submodule)
index 0000000..be91880
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit be91880dfea628a01709d7b93788c22b1126d88a
diff --git a/extensions/CollaborationKit b/extensions/CollaborationKit
new file mode 160000 (submodule)
index 0000000..8b581fc
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8b581fc3d7dfcd41b04a437c692b1814308f7757
diff --git a/extensions/Collection b/extensions/Collection
new file mode 160000 (submodule)
index 0000000..c472c4e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c472c4e1211021d3ed20a79aeb9aec98ad09447f
diff --git a/extensions/CommonsMetadata b/extensions/CommonsMetadata
new file mode 160000 (submodule)
index 0000000..e483d00
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e483d0064eb1c77959b49240191da75fc1f1b888
diff --git a/extensions/ConfirmEdit b/extensions/ConfirmEdit
new file mode 160000 (submodule)
index 0000000..699ce5b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 699ce5b9015f13830a3e0d5b071bbb897dc48b13
diff --git a/extensions/ContactPage b/extensions/ContactPage
new file mode 160000 (submodule)
index 0000000..8450963
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 845096305b11118b2b1c1a8ebc8e54113cd46bc4
diff --git a/extensions/ContentTranslation b/extensions/ContentTranslation
new file mode 160000 (submodule)
index 0000000..4e26e7d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4e26e7dff7def2a9bc475ae6b970e4aaa7e8fe4a
diff --git a/extensions/ContributionTracking b/extensions/ContributionTracking
new file mode 160000 (submodule)
index 0000000..e534c8d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e534c8dd6f3bbe98295dfb92593bf6378c3676bc
diff --git a/extensions/CreditsSource b/extensions/CreditsSource
new file mode 160000 (submodule)
index 0000000..2cee913
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2cee9137ff227aed8a2a438c1e916987df2990e4
diff --git a/extensions/Dashiki b/extensions/Dashiki
new file mode 160000 (submodule)
index 0000000..313bf84
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 313bf84c42e36a4eb96fbe51742c4124c63df37a
diff --git a/extensions/DisableAccount b/extensions/DisableAccount
new file mode 160000 (submodule)
index 0000000..934406f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 934406f9708f7040ee6e1024e64bef3265658cb9
diff --git a/extensions/Disambiguator b/extensions/Disambiguator
new file mode 160000 (submodule)
index 0000000..6646fb6
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6646fb618b4ea82a11ee7617be49f6a66d26d3b6
diff --git a/extensions/DismissableSiteNotice b/extensions/DismissableSiteNotice
new file mode 160000 (submodule)
index 0000000..8ccd590
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8ccd5905b2925295c6dbe0b946bbe1b2f135a0d8
diff --git a/extensions/DonationInterface b/extensions/DonationInterface
new file mode 160000 (submodule)
index 0000000..93fffe1
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 93fffe1dd78dba5b56fea0060d4434002a001e04
diff --git a/extensions/DoubleWiki b/extensions/DoubleWiki
new file mode 160000 (submodule)
index 0000000..b502aff
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b502aff8f1f56d05bb9c73eb3ae84c7319a57eb5
diff --git a/extensions/DynamicSidebar b/extensions/DynamicSidebar
new file mode 160000 (submodule)
index 0000000..2609aae
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2609aaeeb5eb3fa5e6d2c32001c248143a17e73a
diff --git a/extensions/Echo b/extensions/Echo
new file mode 160000 (submodule)
index 0000000..083e497
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 083e497b204b0f771f5fae9906edf93788dd6e7a
diff --git a/extensions/EducationProgram b/extensions/EducationProgram
new file mode 160000 (submodule)
index 0000000..e674394
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e674394cb4a61b7d56785c5730604d2e83498ed8
diff --git a/extensions/Elastica b/extensions/Elastica
new file mode 160000 (submodule)
index 0000000..ad8d2b0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ad8d2b0c522a74f52b6b03f7a54b12d75336c641
diff --git a/extensions/ElectronPdfService b/extensions/ElectronPdfService
new file mode 160000 (submodule)
index 0000000..5b519e7
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 5b519e7a8bfc3d45488105183f902b6e1237fbc3
diff --git a/extensions/EventBus b/extensions/EventBus
new file mode 160000 (submodule)
index 0000000..337295f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 337295fa4ddd4e4d2334c8422af92d3ad9a3266d
diff --git a/extensions/EventLogging b/extensions/EventLogging
new file mode 160000 (submodule)
index 0000000..2462c72
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2462c72245ac7539808448cdbde0b6fba2b39455
diff --git a/extensions/ExtensionDistributor b/extensions/ExtensionDistributor
new file mode 160000 (submodule)
index 0000000..bbfea59
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit bbfea59843c9e72a6623a33162b3985c7d5df890
diff --git a/extensions/FeaturedFeeds b/extensions/FeaturedFeeds
new file mode 160000 (submodule)
index 0000000..2ebcb3c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2ebcb3cb6349553af9561d5edc0d4a6342d39208
diff --git a/extensions/FlaggedRevs b/extensions/FlaggedRevs
new file mode 160000 (submodule)
index 0000000..32c5548
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 32c554807762da5685e6d41e5091633e63b3ba85
diff --git a/extensions/Flow b/extensions/Flow
new file mode 160000 (submodule)
index 0000000..cd807ab
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit cd807abdb75cc81081dcef67094903900c64c7c7
diff --git a/extensions/FundraiserLandingPage b/extensions/FundraiserLandingPage
new file mode 160000 (submodule)
index 0000000..ddcc88d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ddcc88d367f314eab04fa3b345bf4a18d8485584
diff --git a/extensions/FundraisingTranslateWorkflow b/extensions/FundraisingTranslateWorkflow
new file mode 160000 (submodule)
index 0000000..cc7a3f4
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit cc7a3f4be83a3f64d1bc154488f2f4a727f446f0
diff --git a/extensions/GWToolset b/extensions/GWToolset
new file mode 160000 (submodule)
index 0000000..e2c03c3
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e2c03c358a9bbb30f512aaa32d170d90e598176a
diff --git a/extensions/Gadgets b/extensions/Gadgets
new file mode 160000 (submodule)
index 0000000..c55c2f3
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c55c2f331dfa49a09441871083a95d2d8a9b0f5a
diff --git a/extensions/GeoCrumbs b/extensions/GeoCrumbs
new file mode 160000 (submodule)
index 0000000..c4569cd
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c4569cdbab6c6516783a8f7f7e1432034a038dcc
diff --git a/extensions/GeoData b/extensions/GeoData
new file mode 160000 (submodule)
index 0000000..f598108
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f5981082c34d00a1c2cb6431c9310f57a387032a
diff --git a/extensions/GettingStarted b/extensions/GettingStarted
new file mode 160000 (submodule)
index 0000000..806efbe
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 806efbebcce20669bf4f94998d82fb1519c12920
diff --git a/extensions/GlobalBlocking b/extensions/GlobalBlocking
new file mode 160000 (submodule)
index 0000000..5151b28
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 5151b2870c6085379ef532cdb3ee9b389f2c3b37
diff --git a/extensions/GlobalCssJs b/extensions/GlobalCssJs
new file mode 160000 (submodule)
index 0000000..7eb8349
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 7eb83491093d85497abe48f4e7aaf634c21ded44
diff --git a/extensions/GlobalUsage b/extensions/GlobalUsage
new file mode 160000 (submodule)
index 0000000..87d44e6
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 87d44e69fe5d228f329c4b2352da8ea7cc8914e6
diff --git a/extensions/GlobalUserPage b/extensions/GlobalUserPage
new file mode 160000 (submodule)
index 0000000..8a96c64
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8a96c6425e1738334e71fcd8b416b8c9feb3a17b
diff --git a/extensions/GoogleNewsSitemap b/extensions/GoogleNewsSitemap
new file mode 160000 (submodule)
index 0000000..a50be56
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a50be56010ec3de1f71bcbc64a2e0dfbdcb0f70e
diff --git a/extensions/Graph b/extensions/Graph
new file mode 160000 (submodule)
index 0000000..9ed5c62
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 9ed5c62b3cdb29edbbccce90b504932fa62660e0
diff --git a/extensions/GuidedTour b/extensions/GuidedTour
new file mode 160000 (submodule)
index 0000000..fce43df
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit fce43df92d3155386bca38ea430abac352dab7ac
diff --git a/extensions/ImageMap b/extensions/ImageMap
new file mode 160000 (submodule)
index 0000000..54f5845
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 54f584579f2625cbaf81433ccce8abb675d1f704
diff --git a/extensions/InputBox b/extensions/InputBox
new file mode 160000 (submodule)
index 0000000..67e27d0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 67e27d00b7dd202457267f908aa97b4aaecad373
diff --git a/extensions/Insider b/extensions/Insider
new file mode 160000 (submodule)
index 0000000..f1d3232
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f1d3232efe47ac203882ae668dc15db431d161b9
diff --git a/extensions/Interwiki b/extensions/Interwiki
new file mode 160000 (submodule)
index 0000000..c615f0a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c615f0a54bb18856907503f0b20330bb5e2259b1
diff --git a/extensions/InterwikiSorting b/extensions/InterwikiSorting
new file mode 160000 (submodule)
index 0000000..00005a2
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 00005a2f4a24001da1b8ef7c2959e858b41850f2
diff --git a/extensions/Josa b/extensions/Josa
new file mode 160000 (submodule)
index 0000000..db670ea
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit db670ea9f7c5dcb7a788bd92acfe2e6ec6811a2a
diff --git a/extensions/JsonConfig b/extensions/JsonConfig
new file mode 160000 (submodule)
index 0000000..618e64b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 618e64baa0501500fd41555a3a3fb8bb2544bc78
diff --git a/extensions/Kartographer b/extensions/Kartographer
new file mode 160000 (submodule)
index 0000000..78799a9
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 78799a9896db3a018835acd7c8d35c738d812e37
diff --git a/extensions/LabeledSectionTransclusion b/extensions/LabeledSectionTransclusion
new file mode 160000 (submodule)
index 0000000..e900583
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e900583915646ef314acaf295491acbe1c53ae18
diff --git a/extensions/LandingCheck b/extensions/LandingCheck
new file mode 160000 (submodule)
index 0000000..48cbd3c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 48cbd3c1804ffa8bda1e67bb00cf1e166937c851
diff --git a/extensions/LdapAuthentication b/extensions/LdapAuthentication
new file mode 160000 (submodule)
index 0000000..4c9bdab
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4c9bdab6d1a036ee139ab76443ee4d3afd1d2cf6
diff --git a/extensions/Linter b/extensions/Linter
new file mode 160000 (submodule)
index 0000000..a3b0580
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a3b0580e52f895283c9c97081e4e27d1580313ff
diff --git a/extensions/LiquidThreads b/extensions/LiquidThreads
new file mode 160000 (submodule)
index 0000000..ee913e5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ee913e5eb59c59f4200608c5ce372d47cd1a1f1d
diff --git a/extensions/Listings b/extensions/Listings
new file mode 160000 (submodule)
index 0000000..e068d75
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e068d751ba0aea1cba002f619203833dc1542c0c
diff --git a/extensions/LocalisationUpdate b/extensions/LocalisationUpdate
new file mode 160000 (submodule)
index 0000000..45bf3e0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 45bf3e0c1c824d4c54795ae2a55e3e3259484ccd
diff --git a/extensions/LoginNotify b/extensions/LoginNotify
new file mode 160000 (submodule)
index 0000000..f7ffe8f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f7ffe8fdc439b81b04481266c8f5e64ddcd3987b
diff --git a/extensions/MapSources b/extensions/MapSources
new file mode 160000 (submodule)
index 0000000..620e0cd
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 620e0cda78d4b6a72dab909e84243cd40094c434
diff --git a/extensions/MassMessage b/extensions/MassMessage
new file mode 160000 (submodule)
index 0000000..e966555
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e966555964d38ade02dc710c4322786ed5d96a3e
diff --git a/extensions/Math b/extensions/Math
new file mode 160000 (submodule)
index 0000000..91fa300
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 91fa3002a54427ccaf3378b32cf12da288d84c23
diff --git a/extensions/MobileApp b/extensions/MobileApp
new file mode 160000 (submodule)
index 0000000..e1e19f6
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e1e19f6a711e6004b150d327d5270eed24c3ead8
diff --git a/extensions/MobileFrontend b/extensions/MobileFrontend
new file mode 160000 (submodule)
index 0000000..e72de7b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e72de7bb3c42cf5a4dab04b82145e74f289bde4f
diff --git a/extensions/MultimediaViewer b/extensions/MultimediaViewer
new file mode 160000 (submodule)
index 0000000..8d07d09
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8d07d0908597f4700b928a25c24f855f03b1d3bc
diff --git a/extensions/MwEmbedSupport b/extensions/MwEmbedSupport
new file mode 160000 (submodule)
index 0000000..79e59ac
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 79e59ac8b3036fc7b61e17c9bf5383f6cdb95dcb
diff --git a/extensions/NavigationTiming b/extensions/NavigationTiming
new file mode 160000 (submodule)
index 0000000..916eafa
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 916eafa239399ffd191f9ae5ace0d6a9a6e8c5d4
diff --git a/extensions/NewUserMessage b/extensions/NewUserMessage
new file mode 160000 (submodule)
index 0000000..455ca3e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 455ca3e6a5641d3b33691a362a62977ce2bb68aa
diff --git a/extensions/Nuke b/extensions/Nuke
new file mode 160000 (submodule)
index 0000000..3d54172
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 3d5417229686cd63fe189209a06a438b0730711d
diff --git a/extensions/OATHAuth b/extensions/OATHAuth
new file mode 160000 (submodule)
index 0000000..8fbef6a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8fbef6a69397bc6c9b184fdc51fd7cefd3f9813e
diff --git a/extensions/OAuth b/extensions/OAuth
new file mode 160000 (submodule)
index 0000000..10789e1
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 10789e171ab23d22e6ae829641fc43653edbd821
diff --git a/extensions/ORES b/extensions/ORES
new file mode 160000 (submodule)
index 0000000..c567323
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c567323cca6b5d1cbe58c6180463bba728187bf3
diff --git a/extensions/OpenStackManager b/extensions/OpenStackManager
new file mode 160000 (submodule)
index 0000000..6d23b47
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6d23b478abdb33e60edfe0dd2a5fb966eef6fa72
diff --git a/extensions/PageAssessments b/extensions/PageAssessments
new file mode 160000 (submodule)
index 0000000..0c46f48
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 0c46f48a031a4d7db7a43e62b1fa4cc6f2860a85
diff --git a/extensions/PageImages b/extensions/PageImages
new file mode 160000 (submodule)
index 0000000..9b63fdc
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 9b63fdc577e701244c01f9c36b3d567abfc32677
diff --git a/extensions/PageTriage b/extensions/PageTriage
new file mode 160000 (submodule)
index 0000000..789f81a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 789f81a52c4d5646a406b8f90b15a343a291a735
diff --git a/extensions/PageViewInfo b/extensions/PageViewInfo
new file mode 160000 (submodule)
index 0000000..c9fa85a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c9fa85ad88288113f917294ffc14d2988d734096
diff --git a/extensions/PagedTiffHandler b/extensions/PagedTiffHandler
new file mode 160000 (submodule)
index 0000000..39b7d1e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 39b7d1e4627bc0ab50ca037075c1c75b8a50e3f2
diff --git a/extensions/ParserFunctions b/extensions/ParserFunctions
new file mode 160000 (submodule)
index 0000000..f844f1b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f844f1bc7fd55dffa427e559e5d1ebea03acc4cc
diff --git a/extensions/ParserMigration b/extensions/ParserMigration
new file mode 160000 (submodule)
index 0000000..8b3a165
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8b3a165840be7499f27852356cc658478b6987aa
diff --git a/extensions/ParsoidBatchAPI b/extensions/ParsoidBatchAPI
new file mode 160000 (submodule)
index 0000000..6d4f2f7
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6d4f2f7e670a6943a800d3e21b14d53c4a1d6a3b
diff --git a/extensions/PdfHandler b/extensions/PdfHandler
new file mode 160000 (submodule)
index 0000000..34cd061
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 34cd061ec99fdb38629aadb6b4cf957872dd0ced
diff --git a/extensions/Petition b/extensions/Petition
new file mode 160000 (submodule)
index 0000000..1ea9bd0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 1ea9bd0e5e3cae03541a192540e8138bac1cf643
diff --git a/extensions/Poem b/extensions/Poem
new file mode 160000 (submodule)
index 0000000..96442dd
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 96442dd8bbd4ce2bbe816890c5a00365f5f9fde0
diff --git a/extensions/PoolCounter b/extensions/PoolCounter
new file mode 160000 (submodule)
index 0000000..a961f85
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a961f8592a3c713141dfce94853af611edd07ce1
diff --git a/extensions/Popups b/extensions/Popups
new file mode 160000 (submodule)
index 0000000..4453181
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 445318111b33bf76525d05d1a534dd34cdabf3dd
diff --git a/extensions/ProofreadPage b/extensions/ProofreadPage
new file mode 160000 (submodule)
index 0000000..8f39838
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8f3983853dc6911f8780b106a3bd1878d3e26426
diff --git a/extensions/QuickSurveys b/extensions/QuickSurveys
new file mode 160000 (submodule)
index 0000000..ee33321
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ee3332106e6925975b5ce0bcf0d50efbe48553d5
diff --git a/extensions/Quiz b/extensions/Quiz
new file mode 160000 (submodule)
index 0000000..2d1b0fc
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 2d1b0fc16bc7b2ec2b5c0ca0ee5196a36942c6e1
diff --git a/extensions/README b/extensions/README
deleted file mode 100644 (file)
index 5c9bf53..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-== User Information ==
-
-Extensions are distributed separately. Drop them into this directory and enable
-as per the extension's installation instructions.
-
-You can find a list of extensions and documentation at
-<https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions>.
-
-== Development Information ==
-
-If you are a developer, you might want to fetch the extension tree in another
-directory and make a symbolic link:
-
- mediawiki/extensions$ ln -s ../../extensions-trunk/FooBar
-
-Most extensions are available through Git:
-    https://phabricator.wikimedia.org/diffusion/MEXT/
-
-
-Please note that under POSIX systems (Linux...), parent of a symbolic path
-refers to the link source, NOT to the target! You should check the env
-variable MW_INSTALL_PATH in case the extension is not in the default location.
-
-The following code snippet lets you override the default path:
-
- $IP = getenv( 'MW_INSTALL_PATH' );
- if( $IP === false ) {
-       $IP = __DIR__ . '/../..';
- }
- require_once "$IP/maintenance/Maintenance.php"; // a MediaWiki core file
diff --git a/extensions/RSS b/extensions/RSS
new file mode 160000 (submodule)
index 0000000..08928d5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 08928d5380c45f60b0204daf3fa947c79d243629
diff --git a/extensions/RelatedArticles b/extensions/RelatedArticles
new file mode 160000 (submodule)
index 0000000..4933f51
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4933f5143e415e1b94b10eba809baa96a11efffd
diff --git a/extensions/RelatedSites b/extensions/RelatedSites
new file mode 160000 (submodule)
index 0000000..5f10ab4
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 5f10ab4419db6cbed7e3ec927b74841f73f4dffa
diff --git a/extensions/Renameuser b/extensions/Renameuser
new file mode 160000 (submodule)
index 0000000..fc90f1b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit fc90f1b86cc7407de23fe8d82cca523a84887c54
diff --git a/extensions/RevisionSlider b/extensions/RevisionSlider
new file mode 160000 (submodule)
index 0000000..d02f2e0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit d02f2e066b93e8688306ac101b3f525df12c7952
diff --git a/extensions/SandboxLink b/extensions/SandboxLink
new file mode 160000 (submodule)
index 0000000..ee08a66
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ee08a66baafbe0d7a452ed4cc2558573f13a4760
diff --git a/extensions/Score b/extensions/Score
new file mode 160000 (submodule)
index 0000000..c13642f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c13642f4d3c9752bb35f2a323eb88aa57739bafb
diff --git a/extensions/Scribunto b/extensions/Scribunto
new file mode 160000 (submodule)
index 0000000..9094f68
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 9094f6887f64c6a4f8f33462508125be05c7ec0c
diff --git a/extensions/SearchExtraNS b/extensions/SearchExtraNS
new file mode 160000 (submodule)
index 0000000..9c9e4dc
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 9c9e4dc7e53a833aae1718fa7a8cd4b6dbedd0e3
diff --git a/extensions/SecurePoll b/extensions/SecurePoll
new file mode 160000 (submodule)
index 0000000..bddc60e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit bddc60ed111604955e64983e7b396d91ec98b27a
diff --git a/extensions/ShortUrl b/extensions/ShortUrl
new file mode 160000 (submodule)
index 0000000..3a7899c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 3a7899c636c8560a5618ae70b9505df225f1a94e
diff --git a/extensions/SiteMatrix b/extensions/SiteMatrix
new file mode 160000 (submodule)
index 0000000..3a0aae5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 3a0aae586f47da183954b1a242133daf5c45f088
diff --git a/extensions/SpamBlacklist b/extensions/SpamBlacklist
new file mode 160000 (submodule)
index 0000000..367e433
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 367e43381529c47880d19bafaf63938bc6636cca
diff --git a/extensions/SubPageList3 b/extensions/SubPageList3
new file mode 160000 (submodule)
index 0000000..aae0b55
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit aae0b5511644d3863825b5153427f7a8e717a5f5
diff --git a/extensions/SubpageSortkey b/extensions/SubpageSortkey
new file mode 160000 (submodule)
index 0000000..ebc6452
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ebc6452af4ce5a09b835918f8640f134ab04810e
diff --git a/extensions/SyntaxHighlight_GeSHi b/extensions/SyntaxHighlight_GeSHi
new file mode 160000 (submodule)
index 0000000..8db92c2
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 8db92c2d0c5a80c6f892efbf2f8b7ea7f780d3db
diff --git a/extensions/TemplateData b/extensions/TemplateData
new file mode 160000 (submodule)
index 0000000..f514591
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f5145915d7513a187daaa864ea5fbe644794d117
diff --git a/extensions/TemplateSandbox b/extensions/TemplateSandbox
new file mode 160000 (submodule)
index 0000000..cccea34
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit cccea34209186fa0d181e5cfcd55390abf0ea2db
diff --git a/extensions/TextExtracts b/extensions/TextExtracts
new file mode 160000 (submodule)
index 0000000..6bfe605
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6bfe60508a7782b04a7db38782af208b61e65e0f
diff --git a/extensions/Thanks b/extensions/Thanks
new file mode 160000 (submodule)
index 0000000..5797cff
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 5797cff72137c5d9c5f2e92bf5953dd2cf3c3518
diff --git a/extensions/TimedMediaHandler b/extensions/TimedMediaHandler
new file mode 160000 (submodule)
index 0000000..e4412db
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e4412dbb62ddf82f6f93ab741a7ae153e791a369
diff --git a/extensions/TitleBlacklist b/extensions/TitleBlacklist
new file mode 160000 (submodule)
index 0000000..92a3d7d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 92a3d7d2b4d40eba684567071b6b50bb448dd3e5
diff --git a/extensions/TocTree b/extensions/TocTree
new file mode 160000 (submodule)
index 0000000..4a6d6ee
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4a6d6eef1a65261347745e55b993d6ee8a1f8445
diff --git a/extensions/TorBlock b/extensions/TorBlock
new file mode 160000 (submodule)
index 0000000..cfbcd6a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit cfbcd6a893973eece3e29842395fce51f5e09585
diff --git a/extensions/Translate b/extensions/Translate
new file mode 160000 (submodule)
index 0000000..6a45442
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6a45442c68687bb8a1dea3d2179ad9e6806ecbdd
diff --git a/extensions/TranslationNotifications b/extensions/TranslationNotifications
new file mode 160000 (submodule)
index 0000000..d467212
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit d4672128b51be92eb22e37fbe4b268c6d1cffc84
diff --git a/extensions/TrustedXFF b/extensions/TrustedXFF
new file mode 160000 (submodule)
index 0000000..7148a8a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 7148a8a62b2380ec05c040ad156d7d51182e2c71
diff --git a/extensions/TwoColConflict b/extensions/TwoColConflict
new file mode 160000 (submodule)
index 0000000..d6c89fb
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit d6c89fbce82263f734198f6d9a326d30fd653783
diff --git a/extensions/UnicodeConverter b/extensions/UnicodeConverter
new file mode 160000 (submodule)
index 0000000..1d377ff
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 1d377ff851fa93ae936c11db7d5d2727d8f68b29
diff --git a/extensions/UniversalLanguageSelector b/extensions/UniversalLanguageSelector
new file mode 160000 (submodule)
index 0000000..47cdd91
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 47cdd917b56a9b83b1b72502d75da3f0dd074a53
diff --git a/extensions/UploadWizard b/extensions/UploadWizard
new file mode 160000 (submodule)
index 0000000..96e5ee6
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 96e5ee6ada4ae9e3a8a60f4fa15b39743066fb6f
diff --git a/extensions/UploadsLink b/extensions/UploadsLink
new file mode 160000 (submodule)
index 0000000..a51db79
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a51db79eaa3d1d0a0e7dbd34f0acdd09093cfde2
diff --git a/extensions/UrlShortener b/extensions/UrlShortener
new file mode 160000 (submodule)
index 0000000..027707c
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 027707c33b1a9e4240d560c427ce05db1cf63960
diff --git a/extensions/UserMerge b/extensions/UserMerge
new file mode 160000 (submodule)
index 0000000..79a8d66
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 79a8d664f3952996f4e91d021f9e32b30f8cd8d3
diff --git a/extensions/VectorBeta b/extensions/VectorBeta
new file mode 160000 (submodule)
index 0000000..15796e0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 15796e0b284135042f2fc7395e77cab0d2cadf8a
diff --git a/extensions/VipsScaler b/extensions/VipsScaler
new file mode 160000 (submodule)
index 0000000..0cc6627
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 0cc66272498684ccd8e70a6bd60cc25791b1278d
diff --git a/extensions/VisualEditor b/extensions/VisualEditor
new file mode 160000 (submodule)
index 0000000..92a994e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 92a994ea96b60a1c12983ed4df403dc19517bc00
diff --git a/extensions/WikiEditor b/extensions/WikiEditor
new file mode 160000 (submodule)
index 0000000..ba6e4e1
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ba6e4e171dcd587a547c5e3d31e824f35c15cff7
diff --git a/extensions/WikiLove b/extensions/WikiLove
new file mode 160000 (submodule)
index 0000000..c608a90
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit c608a90b263ba76332c2bd74f8827d46409fde24
diff --git a/extensions/Wikidata b/extensions/Wikidata
new file mode 160000 (submodule)
index 0000000..a99dffe
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a99dffe4db6812e90550c57ef3da54e66eb431e1
diff --git a/extensions/WikidataPageBanner b/extensions/WikidataPageBanner
new file mode 160000 (submodule)
index 0000000..d800997
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit d80099785060b79f193957920ca12afddda06f33
diff --git a/extensions/WikimediaEvents b/extensions/WikimediaEvents
new file mode 160000 (submodule)
index 0000000..46afb9e
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 46afb9e887080c5195332e2ede7b74dbdee0ecd8
diff --git a/extensions/WikimediaIncubator b/extensions/WikimediaIncubator
new file mode 160000 (submodule)
index 0000000..74de61a
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 74de61a2147053f33c30b3dc630ede423479369d
diff --git a/extensions/WikimediaMaintenance b/extensions/WikimediaMaintenance
new file mode 160000 (submodule)
index 0000000..192e885
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 192e8857c565774bdc40730edb5b7196ac07b936
diff --git a/extensions/WikimediaMessages b/extensions/WikimediaMessages
new file mode 160000 (submodule)
index 0000000..39b0436
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 39b0436ba577bf4fe39e065c828217d18aa8e4a4
diff --git a/extensions/XAnalytics b/extensions/XAnalytics
new file mode 160000 (submodule)
index 0000000..ebf62a5
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ebf62a5fbd318fa1c4d9c72c8f567c140a89c7c0
diff --git a/extensions/ZeroBanner b/extensions/ZeroBanner
new file mode 160000 (submodule)
index 0000000..6e6a225
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 6e6a22545c7c5ff6c5c0afa2e5692e9094b5134c
diff --git a/extensions/ZeroPortal b/extensions/ZeroPortal
new file mode 160000 (submodule)
index 0000000..20450d0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 20450d04961c638a3393f4a3df43702cfe8fc182
diff --git a/extensions/cldr b/extensions/cldr
new file mode 160000 (submodule)
index 0000000..02a3b33
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 02a3b33927df8c0ec8f4553f53c3c8b5382af400
diff --git a/extensions/intersection b/extensions/intersection
new file mode 160000 (submodule)
index 0000000..e01025b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit e01025b141d19c7a7e2bc716de832899f9b46120
diff --git a/extensions/timeline b/extensions/timeline
new file mode 160000 (submodule)
index 0000000..b699ef0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit b699ef07387324510957019b0b06af538a8b4cd0
diff --git a/extensions/wikihiero b/extensions/wikihiero
new file mode 160000 (submodule)
index 0000000..f5cd45f
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit f5cd45fe10eef6b64aa9ff44d757468bda4a1d97
index 19c585d..c9ce2f2 100644 (file)
@@ -75,7 +75,7 @@ $wgConfigRegistry = [
  * MediaWiki version number
  * @since 1.2
  */
-$wgVersion = '1.30.0-alpha';
+$wgVersion = '1.30.0-wmf.2';
 
 /**
  * Name of the site. It must be changed in LocalSettings.php
index 0f479ac..a03bc19 100644 (file)
@@ -175,106 +175,3 @@ class WikiMap {
                return false;
        }
 }
-
-/**
- * Reference to a locally-hosted wiki
- */
-class WikiReference {
-       private $mCanonicalServer; ///< canonical server URL, e.g. 'https://www.mediawiki.org'
-       private $mServer; ///< server URL, may be protocol-relative, e.g. '//www.mediawiki.org'
-       private $mPath; ///< path, '/wiki/$1'
-
-       /**
-        * @param string $canonicalServer
-        * @param string $path
-        * @param null|string $server
-        */
-       public function __construct( $canonicalServer, $path, $server = null ) {
-               $this->mCanonicalServer = $canonicalServer;
-               $this->mPath = $path;
-               $this->mServer = $server === null ? $canonicalServer : $server;
-       }
-
-       /**
-        * Get the URL in a way to be displayed to the user
-        * More or less Wikimedia specific
-        *
-        * @return string
-        */
-       public function getDisplayName() {
-               $parsed = wfParseUrl( $this->mCanonicalServer );
-               if ( $parsed ) {
-                       return $parsed['host'];
-               } else {
-                       // Invalid server spec.
-                       // There's no sane thing to do here, so just return the canonical server name in full.
-                       return $this->mCanonicalServer;
-               }
-       }
-
-       /**
-        * Helper function for getUrl()
-        *
-        * @todo FIXME: This may be generalized...
-        *
-        * @param string $page Page name (must be normalised before calling this function!
-        *  May contain a section part.)
-        * @param string|null $fragmentId
-        *
-        * @return string relative URL, without the server part.
-        */
-       private function getLocalUrl( $page, $fragmentId = null ) {
-               $page = wfUrlencode( str_replace( ' ', '_', $page ) );
-
-               if ( is_string( $fragmentId ) && $fragmentId !== '' ) {
-                       $page .= '#' . wfUrlencode( $fragmentId );
-               }
-
-               return str_replace( '$1', $page, $this->mPath );
-       }
-
-       /**
-        * Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki
-        *
-        * @param string $page Page name (must be normalised before calling this function!)
-        * @param string|null $fragmentId
-        *
-        * @return string Url
-        */
-       public function getCanonicalUrl( $page, $fragmentId = null ) {
-               return $this->mCanonicalServer . $this->getLocalUrl( $page, $fragmentId );
-       }
-
-       /**
-        * Get a canonical server URL
-        * @return string
-        */
-       public function getCanonicalServer() {
-               return $this->mCanonicalServer;
-       }
-
-       /**
-        * Alias for getCanonicalUrl(), for backwards compatibility.
-        * @param string $page
-        * @param string|null $fragmentId
-        *
-        * @return string
-        */
-       public function getUrl( $page, $fragmentId = null ) {
-               return $this->getCanonicalUrl( $page, $fragmentId );
-       }
-
-       /**
-        * Get a URL based on $wgServer, like Title::getFullURL() would produce
-        * when called locally on the wiki.
-        *
-        * @param string $page Page name (must be normalized before calling this function!)
-        * @param string|null $fragmentId
-        *
-        * @return string URL
-        */
-       public function getFullUrl( $page, $fragmentId = null ) {
-               return $this->mServer .
-                       $this->getLocalUrl( $page, $fragmentId );
-       }
-}
diff --git a/includes/WikiReference.php b/includes/WikiReference.php
new file mode 100644 (file)
index 0000000..724ba98
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+/**
+ * Tools for dealing with other locally-hosted wikis.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Reference to a locally-hosted wiki
+ */
+class WikiReference {
+       private $mCanonicalServer; ///< canonical server URL, e.g. 'https://www.mediawiki.org'
+       private $mServer; ///< server URL, may be protocol-relative, e.g. '//www.mediawiki.org'
+       private $mPath; ///< path, '/wiki/$1'
+
+       /**
+        * @param string $canonicalServer
+        * @param string $path
+        * @param null|string $server
+        */
+       public function __construct( $canonicalServer, $path, $server = null ) {
+               $this->mCanonicalServer = $canonicalServer;
+               $this->mPath = $path;
+               $this->mServer = $server === null ? $canonicalServer : $server;
+       }
+
+       /**
+        * Get the URL in a way to be displayed to the user
+        * More or less Wikimedia specific
+        *
+        * @return string
+        */
+       public function getDisplayName() {
+               $parsed = wfParseUrl( $this->mCanonicalServer );
+               if ( $parsed ) {
+                       return $parsed['host'];
+               } else {
+                       // Invalid server spec.
+                       // There's no sane thing to do here, so just return the canonical server name in full.
+                       return $this->mCanonicalServer;
+               }
+       }
+
+       /**
+        * Helper function for getUrl()
+        *
+        * @todo FIXME: This may be generalized...
+        *
+        * @param string $page Page name (must be normalised before calling this function!
+        *  May contain a section part.)
+        * @param string|null $fragmentId
+        *
+        * @return string relative URL, without the server part.
+        */
+       private function getLocalUrl( $page, $fragmentId = null ) {
+               $page = wfUrlencode( str_replace( ' ', '_', $page ) );
+
+               if ( is_string( $fragmentId ) && $fragmentId !== '' ) {
+                       $page .= '#' . wfUrlencode( $fragmentId );
+               }
+
+               return str_replace( '$1', $page, $this->mPath );
+       }
+
+       /**
+        * Get a canonical (i.e. based on $wgCanonicalServer) URL to a page on this foreign wiki
+        *
+        * @param string $page Page name (must be normalised before calling this function!)
+        * @param string|null $fragmentId
+        *
+        * @return string Url
+        */
+       public function getCanonicalUrl( $page, $fragmentId = null ) {
+               return $this->mCanonicalServer . $this->getLocalUrl( $page, $fragmentId );
+       }
+
+       /**
+        * Get a canonical server URL
+        * @return string
+        */
+       public function getCanonicalServer() {
+               return $this->mCanonicalServer;
+       }
+
+       /**
+        * Alias for getCanonicalUrl(), for backwards compatibility.
+        * @param string $page
+        * @param string|null $fragmentId
+        *
+        * @return string
+        */
+       public function getUrl( $page, $fragmentId = null ) {
+               return $this->getCanonicalUrl( $page, $fragmentId );
+       }
+
+       /**
+        * Get a URL based on $wgServer, like Title::getFullURL() would produce
+        * when called locally on the wiki.
+        *
+        * @param string $page Page name (must be normalized before calling this function!)
+        * @param string|null $fragmentId
+        *
+        * @return string URL
+        */
+       public function getFullUrl( $page, $fragmentId = null ) {
+               return $this->mServer .
+                       $this->getLocalUrl( $page, $fragmentId );
+       }
+}
index 4e87967..8289b81 100644 (file)
@@ -827,27 +827,3 @@ class Xml {
        }
 }
 
-/**
- * A wrapper class which causes Xml::encodeJsVar() and Xml::encodeJsCall() to
- * interpret a given string as being a JavaScript expression, instead of string
- * data.
- *
- * Example:
- *
- *    Xml::encodeJsVar( new XmlJsCode( 'a + b' ) );
- *
- * Returns "a + b".
- *
- * @note As of 1.21, XmlJsCode objects cannot be nested inside objects or arrays. The sole
- *       exception is the $args argument to Xml::encodeJsCall() because Xml::encodeJsVar() is
- *       called for each individual element in that array.
- *
- * @since 1.17
- */
-class XmlJsCode {
-       public $value;
-
-       function __construct( $value ) {
-               $this->value = $value;
-       }
-}
diff --git a/includes/XmlJsCode.php b/includes/XmlJsCode.php
new file mode 100644 (file)
index 0000000..d1cd037
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * A wrapper class which causes Xml::encodeJsVar() and Xml::encodeJsCall() to
+ * interpret a given string as being a JavaScript expression, instead of string
+ * data.
+ *
+ * Example:
+ *
+ *    Xml::encodeJsVar( new XmlJsCode( 'a + b' ) );
+ *
+ * Returns "a + b".
+ *
+ * @note As of 1.21, XmlJsCode objects cannot be nested inside objects or arrays. The sole
+ *       exception is the $args argument to Xml::encodeJsCall() because Xml::encodeJsVar() is
+ *       called for each individual element in that array.
+ *
+ * @since 1.17
+ */
+class XmlJsCode {
+       public $value;
+
+       function __construct( $value ) {
+               $this->value = $value;
+       }
+}
index d09978e..91e49ab 100644 (file)
@@ -292,12 +292,14 @@ class ApiParse extends ApiBase {
                }
 
                $outputPage = null;
-               if ( $skin || isset( $prop['headhtml'] ) ) {
-                       // Enabling the skin via 'useskin' or 'headhtml' gets OutputPage and
-                       // Skin involved, which (among others) applies these hooks:
+               if ( $skin || isset( $prop['headhtml'] ) || isset( $prop['categorieshtml'] ) ) {
+                       // Enabling the skin via 'useskin', 'headhtml', or 'categorieshtml'
+                       // gets OutputPage and Skin involved, which (among others) applies
+                       // these hooks:
                        // - ParserOutputHooks
                        // - Hook: LanguageLinks
                        // - Hook: OutputPageParserOutput
+                       // - Hook: OutputPageMakeCategoryLinks
                        $context = new DerivativeContext( $this->getContext() );
                        $context->setTitle( $titleObj );
                        $context->setWikiPage( $pageObj );
@@ -307,6 +309,11 @@ class ApiParse extends ApiBase {
                                $context->setSkin( $skin );
                                // Context clones the skin, refetch to stay in sync. (T166022)
                                $skin = $context->getSkin();
+                       } else {
+                               // Make sure the context's skin refers to the context. Without this,
+                               // $outputPage->getSkin()->getOutput() !== $outputPage which
+                               // confuses some of the output.
+                               $context->setSkin( $context->getSkin() );
                        }
 
                        $outputPage = new OutputPage( $context );
@@ -361,7 +368,7 @@ class ApiParse extends ApiBase {
                        $result_array['categories'] = $this->formatCategoryLinks( $p_result->getCategories() );
                }
                if ( isset( $prop['categorieshtml'] ) ) {
-                       $result_array['categorieshtml'] = $this->categoriesHtml( $p_result->getCategories() );
+                       $result_array['categorieshtml'] = $outputPage->getSkin()->getCategories();
                        $result_array[ApiResult::META_BC_SUBELEMENTS][] = 'categorieshtml';
                }
                if ( isset( $prop['links'] ) ) {
@@ -709,13 +716,6 @@ class ApiParse extends ApiBase {
                return $result;
        }
 
-       private function categoriesHtml( $categories ) {
-               $context = $this->getContext();
-               $context->getOutput()->addCategoryLinks( $categories );
-
-               return $context->getSkin()->getCategories();
-       }
-
        private function formatLinks( $links ) {
                $result = [];
                foreach ( $links as $ns => $nslinks ) {
index 6503020..3244801 100644 (file)
        "apihelp-query+search-param-limit": "Cuántas páginas en total se devolverán.",
        "apihelp-query+search-param-interwiki": "Incluir resultados interwiki en la búsqueda, si es posible.",
        "apihelp-query+search-param-backend": "Qué servidor de búsqueda utilizar, si no es el servidor por defecto.",
-       "apihelp-query+search-param-enablerewrites": "Habilita la reescritura de consultas internas. Algunos servidores de búsqueda pueden reescribir la consulta a una que considere que da mejores resultados, por ejemplo, corrigiendo las faltas ortográficas.",
+       "apihelp-query+search-param-enablerewrites": "Habilitar la reescritura de consultas internas. Algunos servidores de búsqueda pueden reescribir la consulta a una que considere que da mejores resultados, por ejemplo, corrigiendo las faltas ortográficas.",
        "apihelp-query+search-example-simple": "Buscar <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "Buscar <kbd>meaning</kbd> en los textos.",
        "apihelp-query+search-example-generator": "Obtener información acerca de las páginas devueltas por una búsqueda de <kbd>meaning</kbd>.",
index 7613b84..b6a5b09 100644 (file)
        "apihelp-parse-param-preview": "לפענח במצב תצוגה מקדימה.",
        "apihelp-parse-param-sectionpreview": "לפענח במצב תצוגה מקדימה של פסקה (מדליק גם את מצב תצוגה מקדימה).",
        "apihelp-parse-param-disabletoc": "להשמיט את תוכן העניינים בפלט.",
+       "apihelp-parse-param-useskin": "להחיל את העיצוב שנבחר לפלט המפענח. יכול להשפיע על המאפיינים הבאים: <kbd dir=\"ltr\">langlinks</kbd>, <kbd dir=\"ltr\">headitems</kbd>, <kbd dir=\"ltr\">modules</kbd>, <kbd dir=\"ltr\">jsconfigvars</kbd>, <kbd dir=\"ltr\">indicators</kbd>.",
        "apihelp-parse-param-contentformat": "תסדיר הסדרת תוכן שישמש לטקסט הקלט. תקף רק עם $1text.",
        "apihelp-parse-param-contentmodel": "מודל התוכן של טקסט הקלט. אם זה מושמט, יש לציין את $1title והערך ההתחלתי יהיה המודל של הכותרת שצוינה. תקין רק כאשר משמש עם $1text.",
        "apihelp-parse-example-page": "לפענח דף.",
        "apihelp-query+search-param-limit": "כמה דפים להחזיר בסך הכול.",
        "apihelp-query+search-param-interwiki": "לכלול תוצאות בינוויקי בחיפוש, אם זמין.",
        "apihelp-query+search-param-backend": "באיזה שרת חיפוש להשתמש אם לא בבררת המחדל.",
-       "apihelp-query+search-param-enablerewrites": "×\94פע×\9cת ×©×\9bת×\95×\91 ×©×\90×\99×\9cת×\95ת ×¤× ×\99×\9e×\99. ×©×¨×ª×\99 ×\97×\99פ×\95ש ×\90×\97×\93×\99×\9d ×\99×\9b×\95×\9c×\99×\9d ×\9cש×\9bת×\91 ×\90ת ×\94ש×\90×\99×\9cת×\94 ×\9cצ×\95ר×\94 ×©×\9c×\93עת×\9d × ×\95תנת ×ª×\95צ×\90×\95ת ×\98×\95×\91×\95ת ×\99×\95תר, ×\9c×\9eש×\9c תיקון שגיאות כתיב.",
+       "apihelp-query+search-param-enablerewrites": "×\94פע×\9cת ×©×\9bת×\95×\91 ×©×\90×\99×\9cת×\95ת ×¤× ×\99×\9e×\99. ×©×¨×ª×\99 ×\97×\99פ×\95ש ×\90×\97×\93×\99×\9d ×\99×\9b×\95×\9c×\99×\9d ×\9cש×\9bת×\91 ×\90ת ×\94ש×\90×\99×\9cת×\94 ×\9cצ×\95ר×\94 ×\90×\97רת ×©× ×\97ש×\91ת ×\9c×\9b×\96×\90ת ×©×\9eספקת ×ª×\95צ×\90×\95ת ×\98×\95×\91×\95ת ×\99×\95תר, ×\9c×\9eש×\9c ×\91×\90×\9eצע×\95ת תיקון שגיאות כתיב.",
        "apihelp-query+search-example-simple": "חיפוש <kbd>meaning</kbd>.",
        "apihelp-query+search-example-text": "חיפוש טקסטים עבור <kbd>meaning</kbd>.",
        "apihelp-query+search-example-generator": "קבלת מידע על הדף עבור שמוחזרים מחיפוש אחרי <kbd>meaning</kbd>.",
index 250ec2f..a41df90 100644 (file)
        "apihelp-query+backlinks-param-redirect": "Ha a hivatkozó lap átirányítás, az arra hivatkozó lapok keresése szintén. A maximális limit feleződik.",
        "apihelp-query+backlinks-example-simple": "A <kbd>Main Page</kbd> lapra mutató hivatkozások keresése.",
        "apihelp-query+backlinks-example-generator": "Információk lekérése a <kbd>Main Page</kbd>-re hivatkozó lapokról.",
+       "apihelp-query+blocks-description": "Az összes blokkolt felhasználó és IP-cím listázása.",
+       "apihelp-query+blocks-param-start": "A listázás kezdő időbélyege.",
+       "apihelp-query+blocks-param-end": "A lista végét jelentő időbélyeg.",
+       "apihelp-query+blocks-param-ids": "A listázandó blokkok blokkazonosítói (opcionális).",
+       "apihelp-query+blocks-param-users": "A keresendő felhasználók (opcionális).",
+       "apihelp-query+blocks-param-ip": "Minden erre az IP-címre vagy CIDR tartományra vonatkozó blokk listázása, a tartományblokkokat is beleértve. Nem használható együtt a <var>$3users</var> paraméterrel. A CIDR tartományok maximális szélessége IPv4 esetén /$1, IPv6 esetén /$2.",
+       "apihelp-query+blocks-param-limit": "A listázandó blokkok maximális száma.",
+       "apihelp-query+blocks-param-prop": "Lekérendő tulajdonságok:",
+       "apihelp-query+blocks-paramvalue-prop-id": "A blokk azonosítója.",
+       "apihelp-query+blocks-paramvalue-prop-user": "A blokkolt felhasználó felhasználóneve.",
+       "apihelp-query+blocks-paramvalue-prop-userid": "A blokkolt felhasználó felhasználóazonosítója.",
+       "apihelp-query+blocks-paramvalue-prop-by": "A blokkoló felhasználó felhasználóneve.",
+       "apihelp-query+blocks-paramvalue-prop-byid": "A blokkoló felhasználó felhasználóazonosítója.",
+       "apihelp-query+blocks-paramvalue-prop-timestamp": "A blokkolás időbélyege.",
+       "apihelp-query+blocks-paramvalue-prop-expiry": "A blokk lejáratának időbélyege.",
+       "apihelp-query+blocks-paramvalue-prop-reason": "A blokk indoklása.",
+       "apihelp-query+blocks-paramvalue-prop-range": "A blokk által érintett IP-címek tartománya.",
+       "apihelp-query+blocks-param-show": "Csak a megadott feltételeknek megfelelő elemek megjelenítése.\nPéldául csak IP-címek végtelen blokkjainak megjelenítéséhez állítsd <kbd>$1show=ip|!temp</kbd> értékre.",
+       "apihelp-query+blocks-example-simple": "Blokkok listázása.",
+       "apihelp-query+blocks-example-users": "<kbd>Alice</kbd> és <kbd>Bob</kbd> blokkjainak listázása.",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Mód|Módok}}: $2",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "SHA-1 hash hozzáadása a fájlhoz.",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "MIME-típus hozzáadása a fájlhoz.",
index ed9511f..3391708 100644 (file)
        "apihelp-parse-param-preview": "미리 보기 모드에서 구문 분석을 합니다.",
        "apihelp-parse-param-sectionpreview": "문단 미리 보기 모드에서 구문 분석을 합니다. (미리 보기 모드도 활성화함)",
        "apihelp-parse-param-disabletoc": "출력에서 목차를 제외합니다.",
+       "apihelp-parse-param-useskin": "선택한 스킨을 파서 출력에 적용합니다. 다음의 속성에 영향을 줄 수 있습니다: <kbd>langlinks</kbd>, <kbd>headitems</kbd>, <kbd>modules</kbd>, <kbd>jsconfigvars</kbd>, <kbd>indicators</kbd>.",
        "apihelp-parse-example-page": "페이지의 구문을 분석합니다.",
        "apihelp-parse-example-text": "위키텍스트의 구문을 분석합니다.",
        "apihelp-parse-example-summary": "요약을 구문 분석합니다.",
index 24d0246..36f92c3 100644 (file)
        "api-help-authmanagerhelper-returnurl": "O URL de retorno para processos de autenticação por terceiros tem de ser absoluto. É obrigatório fornecer este URL ou <var>$1continue</var>.\n\nTipicamente, após receber uma resposta <samp>REDIRECT</samp>, abrirá um ''browser'' ou uma ''web view'' para o URL <samp>redirecttarget</samp> especificado, para dar lugar ao processo de autenticação por terceiros. Quando esse processo terminar, a terceira entidade encaminhará o ''browser'' ou a ''web view'' para este URL. Deve extrair do URL quaisquer parâmetros de consulta ou de POST, e passá-los como um pedido <var>$1continue</var> a este módulo da API.",
        "api-help-authmanagerhelper-continue": "Este pedido é uma continuação após uma resposta anterior com o valor <samp>UI</samp> ou <samp>REDIRECT</samp>. É obrigatório fornecer este parâmetro ou o parâmetro <var>$1returnurl</var>.",
        "api-help-authmanagerhelper-additional-params": "Este módulo aceita parâmetros adicionais, dependendo dos pedidos de autenticação disponíveis. Use <kbd>[[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]]</kbd> com <kbd>amirequestsfor=$1</kbd> (ou uma resposta anterior deste módulo, se aplicável) para determinar os pedidos disponíveis e os campos que estes utilizam.",
+       "apierror-allimages-redirect": "Usar <kbd>gaifilterredir=nonredirects</kbd> em vez de <var>redirects</var> ao utilizar <kbd>allimages</kbd> como gerador.",
+       "apierror-allpages-generator-redirects": "Usar <kbd>gapfilterredir=nonredirects</kbd> em vez de <var>redirects</var> ao utilizar <kbd>allpages</kbd> como gerador.",
+       "apierror-badgenerator-notgenerator": "O módulo <kbd>$1</kbd> não pode ser usado como gerador.",
+       "apierror-badgenerator-unknown": "<kbd>generator=$1</kbd> desconhecido.",
+       "apierror-badip": "O parâmetro IP não é válido.",
+       "apierror-badmd5": "A chave MD5 fornecida estava incorreta.",
+       "apierror-badmodule-badsubmodule": "O módulo <kbd>$1</kbd> não tem um submódulo \"$2\".",
+       "apierror-badmodule-nosubmodules": "O módulo <kbd>$1</kbd> não tem submódulos.",
+       "apierror-badparameter": "Valor inválido para o parâmetro <var>$1</var>.",
+       "apierror-badquery": "Consulta inválida.",
+       "apierror-badtimestamp": "Valor inválido \"$2\" para o parâmetro de data e hora <var>$1</var>.",
+       "apierror-badtoken": "Chave CSRF inválida.",
+       "apierror-badupload": "O parâmetro para carregamento de ficheiros <var>$1</var> não é um carregamento de ficheiro; verifique que usou <code>multipart/form-data</code> no seu POST e inclua um nome de ficheiro no cabeçalho <code>Content-Disposition</code>.",
+       "apierror-badurl": "Valor inválido \"$2\" para o parâmetro <var>$1</var> do URL.",
+       "apierror-baduser": "Valor inválido \"$2\" para o parâmetro de utilizador <var>$1</var>.",
+       "apierror-badvalue-notmultivalue": "O separador de valores múltiplos U+001F só pode ser usado em parâmetros de valores múltiplos.",
        "api-credits-header": "Créditos",
        "api-credits": "Programadores da API:\n* Yuri Astrakhan (criador, programador principal, set 2006–set 2007)\n* Roan Kattouw (programador principal, set 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Brad Jorsch (programador principal, 2013–presente)\n\nPode enviar os seus comentários, sugestões e perguntas para o endereço mediawiki-api@lists.wikimedia.org, ou reportar quaisquer defeitos que encontre em https://phabricator.wikimedia.org/."
 }
index 5f82a78..45cf709 100644 (file)
        "apihelp-parse-param-preview": "在预览模式下解析。",
        "apihelp-parse-param-sectionpreview": "在段落预览模式下解析(同时要启用预览模式)。",
        "apihelp-parse-param-disabletoc": "在输出中省略目录。",
+       "apihelp-parse-param-useskin": "为解析器输出应用选择的皮肤。会影响以下属性:<kbd>langlinks</kbd>、<kbd>headitems</kbd>、<kbd>modules</kbd>、<kbd>jsconfigvars</kbd>和<kbd>indicators</kbd>。",
        "apihelp-parse-param-contentformat": "用于输入文本的内容序列化格式。只当与$1text一起使用时有效。",
        "apihelp-parse-param-contentmodel": "输入文本的内容模型。如果省略,$1title必须指定,并且默认将为指定标题的模型。只当与$1text一起使用时有效。",
        "apihelp-parse-example-page": "解析一个页面。",
index 8f88ee9..ad1fffb 100644 (file)
@@ -220,7 +220,7 @@ class MessageCache {
         * @return array|bool The cache array, or false if not in cache.
         */
        protected function getLocalCache( $code ) {
-               $cacheKey = wfMemcKey( __CLASS__, $code );
+               $cacheKey = $this->srvCache->makeKey( __CLASS__, $code );
 
                return $this->srvCache->get( $cacheKey );
        }
@@ -232,7 +232,7 @@ class MessageCache {
         * @param array $cache The cache array
         */
        protected function saveToLocalCache( $code, $cache ) {
-               $cacheKey = wfMemcKey( __CLASS__, $code );
+               $cacheKey = $this->srvCache->makeKey( __CLASS__, $code );
                $this->srvCache->set( $cacheKey, $cache );
        }
 
@@ -308,7 +308,7 @@ class MessageCache {
                }
 
                if ( !$success ) {
-                       $cacheKey = wfMemcKey( 'messages', $code ); # Key in memc for messages
+                       $cacheKey = $this->clusterCache->makeKey( 'messages', $code ); # Key in memc for messages
                        # Try the global cache. If it is empty, try to acquire a lock. If
                        # the lock can't be acquired, wait for the other thread to finish
                        # and then try the global cache a second time.
@@ -402,7 +402,7 @@ class MessageCache {
        protected function loadFromDBWithLock( $code, array &$where, $mode = null ) {
                # If cache updates on all levels fail, give up on message overrides.
                # This is to avoid easy site outages; see $saveSuccess comments below.
-               $statusKey = wfMemcKey( 'messages', $code, 'status' );
+               $statusKey = $this->clusterCache->makeKey( 'messages', $code, 'status' );
                $status = $this->clusterCache->get( $statusKey );
                if ( $status === 'error' ) {
                        $where[] = "could not load; method is still globally disabled";
@@ -416,7 +416,7 @@ class MessageCache {
                # This lock is non-blocking so stale cache can quickly be used.
                # Note that load() will call a blocking getReentrantScopedLock()
                # after this if it really need to wait for any current thread.
-               $cacheKey = wfMemcKey( 'messages', $code );
+               $cacheKey = $this->clusterCache->makeKey( 'messages', $code );
                $scopedLock = $this->getReentrantScopedLock( $cacheKey, 0 );
                if ( !$scopedLock ) {
                        $where[] = 'could not acquire main lock';
@@ -596,7 +596,9 @@ class MessageCache {
                        function () use ( $title, $msg, $code ) {
                                global $wgContLang, $wgMaxMsgCacheEntrySize;
                                // Allow one caller at a time to avoid race conditions
-                               $scopedLock = $this->getReentrantScopedLock( wfMemcKey( 'messages', $code ) );
+                               $scopedLock = $this->getReentrantScopedLock(
+                                       $this->clusterCache->makeKey( 'messages', $code )
+                               );
                                if ( !$scopedLock ) {
                                        LoggerFactory::getInstance( 'MessageCache' )->error(
                                                __METHOD__ . ': could not acquire lock to update {title} ({code})',
@@ -628,7 +630,7 @@ class MessageCache {
 
                                // Relay the purge. Touching this check key expires cache contents
                                // and local cache (APC) validation hash across all datacenters.
-                               $this->wanCache->touchCheckKey( wfMemcKey( 'messages', $code ) );
+                               $this->wanCache->touchCheckKey( $this->wanCache->makeKey( 'messages', $code ) );
                                // Also delete cached sidebar... just in case it is affected
                                // @TODO: shouldn't this be $code === $wgLanguageCode?
                                if ( $code === 'en' ) {
@@ -639,7 +641,7 @@ class MessageCache {
                                        $codes = [ $code ];
                                }
                                foreach ( $codes as $code ) {
-                                       $this->wanCache->delete( wfMemcKey( 'sidebar', $code ) );
+                                       $this->wanCache->delete( $this->wanCache->makeKey( 'sidebar', $code ) );
                                }
 
                                // Purge the message in the message blob store
@@ -684,7 +686,7 @@ class MessageCache {
         */
        protected function saveToCaches( array $cache, $dest, $code = false ) {
                if ( $dest === 'all' ) {
-                       $cacheKey = wfMemcKey( 'messages', $code );
+                       $cacheKey = $this->clusterCache->makeKey( 'messages', $code );
                        $success = $this->clusterCache->set( $cacheKey, $cache );
                        $this->setValidationHash( $code, $cache );
                } else {
@@ -707,7 +709,7 @@ class MessageCache {
                $value = $this->wanCache->get(
                        $this->wanCache->makeKey( 'messages', $code, 'hash', 'v1' ),
                        $curTTL,
-                       [ wfMemcKey( 'messages', $code ) ]
+                       [ $this->wanCache->makeKey( 'messages', $code ) ]
                );
 
                if ( $value ) {
@@ -1212,7 +1214,7 @@ class MessageCache {
                $langs = Language::fetchLanguageNames( null, 'mw' );
                foreach ( array_keys( $langs ) as $code ) {
                        # Global and local caches
-                       $this->wanCache->touchCheckKey( wfMemcKey( 'messages', $code ) );
+                       $this->wanCache->touchCheckKey( $this->wanCache->makeKey( 'messages', $code ) );
                }
 
                $this->mLoadedLanguages = [];
index 212f325..dd67fa8 100644 (file)
@@ -716,21 +716,3 @@ class ZipDirectoryReader {
        }
 }
 
-/**
- * Internal exception class. Will be caught by private code.
- */
-class ZipDirectoryReaderError extends Exception {
-       protected $errorCode;
-
-       function __construct( $code ) {
-               $this->errorCode = $code;
-               parent::__construct( "ZipDirectoryReader error: $code" );
-       }
-
-       /**
-        * @return mixed
-        */
-       function getErrorCode() {
-               return $this->errorCode;
-       }
-}
diff --git a/includes/utils/ZipDirectoryReaderError.php b/includes/utils/ZipDirectoryReaderError.php
new file mode 100644 (file)
index 0000000..592036e
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Internal exception class. Will be caught by private code.
+ */
+class ZipDirectoryReaderError extends Exception {
+       protected $errorCode;
+
+       function __construct( $code ) {
+               $this->errorCode = $code;
+               parent::__construct( "ZipDirectoryReader error: $code" );
+       }
+
+       /**
+        * @return mixed
+        */
+       function getErrorCode() {
+               return $this->errorCode;
+       }
+}
index 298a0cc..9477067 100644 (file)
        "recentchanges-submit": "Amosar",
        "rcfilters-activefilters": "Filtros activos",
        "rcfilters-quickfilters": "Enllaces rápidos",
+       "rcfilters-quickfilters-placeholder": "Guarda la configuración favorita de la ferramienta pa volver a usala sero.",
        "rcfilters-savedqueries-defaultlabel": "Filtros guardaos",
        "rcfilters-savedqueries-rename": "Renomar",
        "rcfilters-savedqueries-setdefault": "Guardar como predeterminao",
-       "rcfilters-savedqueries-unsetdefault": "Desactivar predeterminao",
+       "rcfilters-savedqueries-unsetdefault": "Quitar predeterminao",
        "rcfilters-savedqueries-remove": "Desaniciar",
        "rcfilters-savedqueries-new-name-label": "Nome",
        "rcfilters-savedqueries-apply-label": "Crear enllaz rápidu",
        "mw-widgets-titleinput-description-redirect": "redirixir a $1",
        "mw-widgets-categoryselector-add-category-placeholder": "Amestar una categoría...",
        "mw-widgets-usersmultiselect-placeholder": "Amestar más...",
+       "date-range-from": "Dende la data:",
+       "date-range-to": "Ata la data:",
        "sessionmanager-tie": "Nun puen combinase dellos tipos de solicitú d'identificación: $1.",
        "sessionprovider-generic": "sesiones $1",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "sesiones basaes en cookies",
        "rawhtml-notallowed": "Les etiquetes &lt;html&gt; nun pueden usase fuera de les páxines normales.",
        "gotointerwiki": "Dexando {{SITENAME}}",
        "gotointerwiki-invalid": "El títulu especificáu nun ye válidu.",
-       "gotointerwiki-external": "Tas a piques de dexar {{SITENAME}} pa visitar [[$2]], que ye un sitiu web distintu.\n\n[$1 Fai click equí pa siguir a $1].",
+       "gotointerwiki-external": "Tas a piques de dexar {{SITENAME}} pa visitar [[$2]], que ye un sitiu web distintu.\n\n'''[$1 Siguir a $1]'''",
        "undelete-cantedit": "Nun puedes desfacer el borráu d'esta páxina porque nun tienes permisu pa editala.",
        "undelete-cantcreate": "Nun puedes desfacer el borráu d'esta páxina porque nun existe nenguna páxina con esti nome y nun tienes permisu pa creala."
 }
index cdc89b5..28e82c2 100644 (file)
@@ -11,6 +11,8 @@
                        "Catrope"
                ]
        },
+       "underline-always": "Mocak",
+       "underline-never": "Nama wiskat",
        "sunday": "manactakaniwon",
        "monday": "ockorkananiwon",
        "tuesday": "nicw kicikaw",
@@ -73,6 +75,8 @@
        "october-date": "Namekosi pisimw $1",
        "november-date": "Atikamekw pisimw $1",
        "december-date": "Pitcipipon pisimw $1",
+       "period-am": "E pwamici apita kicikak",
+       "period-pm": "E ickwa apita kicikak",
        "pagecategories": "{{PLURAL:$1|Ka ici arimotcikatek|Ka ici arimotcikateki}}",
        "category_header": "Masinahikana ka ici arimotcikateki \"$1\"",
        "subcategories": "Awocamec ke ici arimotcikateki",
@@ -92,6 +96,8 @@
        "and": "&#32;kaie",
        "qbbrowse": "Nantowepaha",
        "qbedit": "Meckotcita",
+       "qbpageoptions": "Nohwe paskickwemakan",
+       "qbmyoptions": "Nipaskickwemakana",
        "namespaces": "Ka ici masinasotcik",
        "variants": "Pitoc",
        "navigation-heading": "Matcecikinikana",
index 649d68c..27c3f7d 100644 (file)
        "rcfilters-typeofchange-conflicts-hideminor": "Гэты фільтар тыпаў зьменаў канфліктуе зь фільтрам «Дробныя праўкі». Некаторыя тыпы зьменаў ня могуць быць вызначаныя як «дробныя».",
        "rcfilters-filtergroup-lastRevision": "Цяперашняя вэрсія",
        "rcfilters-filter-lastrevision-label": "Апошняя вэрсія",
+       "rcfilters-filter-lastrevision-description": "Апошняя зьмена на старонцы.",
        "rcnotefrom": "Ніжэй {{PLURAL:$5|знаходзіцца зьмена|знаходзяцца зьмены}} з <strong>$4 $3</strong> (да <strong>$1</strong> на старонку).",
        "rclistfromreset": "Скінуць выбар даты",
        "rclistfrom": "Паказаць зьмены з $2 $3",
index 6eb3d4f..ccdb1f2 100644 (file)
        "anonpreviewwarning": "Внимание: Не сте влезли в системата. Ако съхраните редакцията си, тя ще бъде записана в историята на страницата с вашият IP-адрес.",
        "missingsummary": "'''Напомняне:''' Не е въведено кратко описание на промените. При повторно натискане на бутона „Съхраняване“, редакцията ще бъде съхранена без резюме.",
        "missingcommenttext": "По-долу въведете вашето съобщение.",
-       "missingcommentheader": "<strong>Напомняне:</strong> Не е въведено заглавие на коментара.\nПри повторно натискане на „$1“, редакцията ще бъде записана без такова.",
+       "missingcommentheader": "<strong>Напомняне:</strong> Не е въведено заглавие на коментара.\nПри повторно натискане на „$1“, редакцията ще бъде записана без коментар.",
        "summary-preview": "Предварителен преглед на резюмето:",
        "subject-preview": "Предварителен преглед на заглавието:",
        "previewerrortext": "Възникна грешка при опита за преглед на промените.",
        "noarticletext": "Понастоящем няма текст на тази страница. Можете да [[Special:Search/{{PAGENAME}}|потърсите за заглавието на страницата]] в други страници, да <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} потърсите в съответните дневници] или [{{fullurl:{{FULLPAGENAME}}|action=edit}} да я създадете]</span>.",
        "noarticletext-nopermission": "Понастоящем в тази страница няма текст.\nМожете да [[Special:Search/{{PAGENAME}}|потърсите заглавието на тази страница ]] в други страници или да <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} потърсите в съответните дневници]</span>, но нямате права да създадете тази страница.",
        "missing-revision": "Версия #$1 на страницата „{{FULLPAGENAME}}“ не съществува.\n\nТова обикновено се дължи на препратка от историята на страницата, която е била изтрита.\nПодробности могат да бъдат открити в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дневника на изтриванията].",
-       "userpage-userdoesnotexist": "Ð\9dÑ\8fма Ñ\80егиÑ\81Ñ\82Ñ\80иÑ\80ана Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82елÑ\81ка Ñ\81меÑ\82ка Ð·Ð° â\80\9e$1â\80\9c. Ð\98зиÑ\81ква Ñ\81е Ð¿Ð¾Ñ\82вÑ\8aÑ\80ждение, Ñ\87е Ð¶ÐµÐ»Ð°ÐµÑ\82е Ð´Ð° Ñ\81Ñ\8aздадеÑ\82е/Ñ\80едакÑ\82иÑ\80аÑ\82е Ñ\82ази Ñ\81Ñ\82Ñ\80аниÑ\86а?",
+       "userpage-userdoesnotexist": "Ð\9dÑ\8fма Ñ\80егиÑ\81Ñ\82Ñ\80иÑ\80ана Ð¿Ð¾Ñ\82Ñ\80ебиÑ\82елÑ\81ка Ñ\81меÑ\82ка Ð·Ð° â\80\9e$1â\80\9c. Ð\9cолÑ\8f Ð¿Ð¾Ñ\82вÑ\8aÑ\80деÑ\82е, Ñ\87е Ð¶ÐµÐ»Ð°ÐµÑ\82е Ð´Ð° Ñ\81Ñ\8aздадеÑ\82е/Ñ\80едакÑ\82иÑ\80аÑ\82е Ñ\82ази Ñ\81Ñ\82Ñ\80аниÑ\86а.",
        "userpage-userdoesnotexist-view": "Не е регистрирана потребителска сметка на име „$1“.",
        "blocked-notice-logextract": "В момента този потребител е блокиран.\nПо-долу за справка е показан последният запис от Дневника на блокиранията:",
        "clearyourcache": "<strong>Забележка:</strong> За да се видят промените, необходимо е след съхраняване на страницата, кешът на браузъра да бъде изтрит.\n* <strong>Firefox / Safari:</strong> Задържа се клавиш <em>Shift</em> и се щраква върху <em>Презареждане</em> (<em>Reload</em>) или чрез клавишната комбинация <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> за Mac);\n* <strong>Google Chrome:</strong> клавишна комбинация <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> за Mac)\n* <strong>Internet Explorer:</strong> Задържа се клавиш <em>Ctrl</em> и се щраква върху <em>Refresh</em> или чрез клавишната комбинация <em>Ctrl-F5</em>;\n* <strong>Opera:</strong> кешът се изчиства през менюто <em>Tools → Settings</em> (<em>Opera → Preferences</em> за Mac) след което <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "unblocked-id": "Блок № $1 беше премахнат",
        "unblocked-ip": "[[Special:Contributions/$1|$1]] е отблокиран.",
        "blocklist": "Блокирани потребители",
+       "autoblocklist": "Автоматични блокирания",
+       "autoblocklist-submit": "Търсене",
+       "autoblocklist-localblocks": "{{PLURAL:$1|Локално автоматично блокиране|Локални автоматични блокирания}}",
+       "autoblocklist-empty": "Списъкът на автоматичните блокирания е празен.",
        "ipblocklist": "Блокирани потребители",
        "ipblocklist-legend": "Търсене на блокиран потребител",
        "blocklist-userblocks": "Скриване на блокирани потребителски сметки",
        "pageinfo-header-properties": "Характеристики на страницата",
        "pageinfo-display-title": "Показвано заглавие",
        "pageinfo-default-sort": "Ключ за сортиране по подразбиране",
-       "pageinfo-length": "Ð\93олемина на страницата (в байтове)",
+       "pageinfo-length": "РазмеÑ\80 на страницата (в байтове)",
        "pageinfo-article-id": "Номер на страницата",
        "pageinfo-language": "Език на съдържанието на страницата",
        "pageinfo-language-change": "промяна",
index 9e37a64..1d63110 100644 (file)
        "rawhtml-notallowed": "&lt;html&gt; ট্যাগ স্বাভাবিক পৃষ্ঠাগুলির বাহিরে ব্যবহার করা যাবে না।",
        "gotointerwiki": "{{SITENAME}} ছেড়ে যাচ্ছেন",
        "gotointerwiki-invalid": "নিদিষ্টকৃত শিরোনামটি অবৈধ ছিল।",
-       "gotointerwiki-external": "আপনি [[$2]] পরিদর্শন করতে {{SITENAME}} ছাড়তে চলেছেন যা একটি ভিন্ন ওয়েবসাইট।\n\n[$1 $1-এ অবিরত থাকতে এখানে ক্লিক করুন]।",
+       "gotointerwiki-external": "আপনি [[$2]] পরিদর্শন করতে {{SITENAME}} ছাড়তে চলেছেন যা একটি ভিন্ন ওয়েবসাইট।\n\n'''[$1 $1-এ চলুন]'''",
        "undelete-cantedit": "আপনি এই পাতাটি ফিরিয়ে আনতে পারবেন না কারণ আপনার এই পাতাটি সম্পাদনা করার অনুমতি নেই।",
        "undelete-cantcreate": "আপনি এই পাতাটি ফিরিয়ে আনতে পারবেন না কারণ এই নামে কোন পাতা বিদ্যমান নেই ও আপনার এই পাতাটি তৈরি করার অনুমতি নেই।"
 }
index d56a376..a5d58aa 100644 (file)
@@ -25,7 +25,8 @@
                        "Semso98",
                        "Matma Rex",
                        "Сербијана",
-                       "Asmen"
+                       "Asmen",
+                       "Obsuser"
                ]
        },
        "tog-underline": "Podvlačenje linkova:",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|sekunda|sekunde|sekundi}}",
        "limitreport-ppvisitednodes": "Broj predprocesiranih posjećenih nodova",
        "limitreport-ppgeneratednodes": "Broj predprocesiranih generiranih nodova",
-       "limitreport-postexpandincludesize": "Nakon proširenja navedi i veličinu",
+       "limitreport-postexpandincludesize": "Uključena veličina nakon proširenja",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|bajt|bajta|bajtova}}",
-       "limitreport-templateargumentsize": "Veličina stavke šablona",
+       "limitreport-templateargumentsize": "Veličina argumenata šablona",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bajt|bajta|bajtova}}",
        "limitreport-expansiondepth": "Najveća dubina proširenja",
-       "limitreport-expensivefunctioncount": "Broj funkcije ekspenzivnog analizatora",
+       "limitreport-expensivefunctioncount": "Broj složenih funkcija raščlanjivača",
        "expandtemplates": "Proširi šablone",
        "expand_templates_intro": "Ova posebna stranica uzima neki tekst i proširuje sve šablone u njemu rekurzivno.\nOna također proširuje parserske funkcije poput\n<code><nowiki>{{</nowiki>#language:…}}</code> i varijable poput\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>. U principu proširuje gotovo sve između dvostrukih zagrada.",
        "expand_templates_title": "Naslov konteksta, za {{FULLPAGENAME}} itd.:",
index 598d953..91a72a9 100644 (file)
        "rcfilters-savedqueries-defaultlabel": "Filtros guardados",
        "rcfilters-savedqueries-rename": "Cambiar nombre",
        "rcfilters-savedqueries-setdefault": "Activar por defecto",
-       "rcfilters-savedqueries-unsetdefault": "Desactivar por defecto",
+       "rcfilters-savedqueries-unsetdefault": "Eliminar por defecto",
        "rcfilters-savedqueries-remove": "Eliminar",
        "rcfilters-savedqueries-new-name-label": "Nombre",
        "rcfilters-savedqueries-apply-label": "Crear enlace rápido",
        "rawhtml-notallowed": "No se pueden emplear las etiquetas &lt;html&gt; si no es en las páginas normales.",
        "gotointerwiki": "Salir de {{SITENAME}}",
        "gotointerwiki-invalid": "El título especificado no es válido.",
-       "gotointerwiki-external": "Estás a punto de abandonar {{SITENAME}} para visitar [[$2]], un sitio web separado.\n\n[$1 Continuar a $1].",
+       "gotointerwiki-external": "Estás a punto de abandonar {{SITENAME}} para visitar [[$2]], un sitio web diferente.\n\n'''[$1 Continuar a $1]'''",
        "undelete-cantedit": "No puedes deshacer el borrado de esta página porque no tienes permisos para editarla.",
        "undelete-cantcreate": "No puedes deshacer el borrado de esta página porque no existe ninguna página con este nombre y no tienes permisos para crearla."
 }
index 25e90e2..fd286e3 100644 (file)
        "recentchanges-submit": "نمایش",
        "rcfilters-activefilters": "پالایه‌های فعال",
        "rcfilters-quickfilters": "پیوندهای سریع",
+       "rcfilters-quickfilters-placeholder": "تنظیمات ابزار مورد علاقه‌تان را برای استفاده مجدد در زمانی دیگر، ذخیره کنید.",
        "rcfilters-savedqueries-defaultlabel": "پالایه‌های ذخیره‌شده",
        "rcfilters-savedqueries-rename": "تغییر نام",
        "rcfilters-savedqueries-setdefault": "تنظیم به عنوان پیش‌فرض",
-       "rcfilters-savedqueries-unsetdefault": "بÙ\87 Ø¯Ø± Ø¢Ù\88ردÙ\86 از پیش‌فرض",
+       "rcfilters-savedqueries-unsetdefault": "حذÙ\81 از پیش‌فرض",
        "rcfilters-savedqueries-remove": "حذف",
        "rcfilters-savedqueries-new-name-label": "نام",
        "rcfilters-savedqueries-apply-label": "ایجاد پیوند سریع",
        "mw-widgets-titleinput-description-redirect": "تغییر مسیر به $1",
        "mw-widgets-categoryselector-add-category-placeholder": "در حال افزودن رده ...",
        "mw-widgets-usersmultiselect-placeholder": "افزودن بیشتر...",
+       "date-range-from": "از تاریخ:",
+       "date-range-to": "تا تاریخ:",
        "sessionmanager-tie": "نمی‌توان چندین نوع درخواست هویت‌سنجی را ترکیب کرد: $1.",
        "sessionprovider-generic": "$1 فصل",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "فصل‌های کوکی‌محور",
        "pageid": "شناسهٔ صفحهٔ $1",
        "rawhtml-notallowed": "برچسب‌های &lt;html&gt; را نمی‌توان خارج از صفحه‌های معمولی استفاده کرد.",
        "gotointerwiki": "در حال ترک {{SITENAME}}",
-       "gotointerwiki-invalid": "عÙ\86Ù\88اÙ\86 Ù\85شخص Ø´Ø¯Ù\87 Ù\86اÙ\85جاز Ø¨Ù\88د.",
-       "gotointerwiki-external": "شما در حال ترک {{SITENAME}} هستید تا [[$2]] را ببینید که یک وب‌گاه مجزا است.\n\n[$1 اینجا کلیک کنید تا به $1 بروید]",
+       "gotointerwiki-invalid": "عÙ\86Ù\88اÙ\86 Ù\85شخص Ø´Ø¯Ù\87 Ù\86اÙ\85جاز Ø§Ø³Øª.",
+       "gotointerwiki-external": "شما در حال ترک {{SITENAME}} هستید تا [[$2]] را ببینید که یک وب‌گاه مجزا است.\n\n'''[$1 ادامه تا $1]'''",
        "undelete-cantedit": "شما نمی‌توانید این صفحه را احیا کنید چون مجاز به ویرایش این صفحه نیستید.",
        "undelete-cantcreate": "شما نمی‌توانید این صفحه را احیا کنید چرا که صفحه‌ای به این نام همینک وجود ندارد و شما مجاز به ساختن آن نیستید."
 }
index f06dc25..a42f9ea 100644 (file)
        "confirmrecreate": "L’utilisat{{GENDER:$1|eur|rice}} [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à la modifier, pour le motif suivant :\n: <em>$2</em>\nVeuillez confirmer que vous désirez réellement recréer cette page.",
        "confirmrecreate-noreason": "L’utilisat{{GENDER:$1|eur|rice}} [[User:$1|$1]] ([[User talk:$1|Discussion]]) a supprimé cette page, alors que vous aviez commencé à la modifier. Veuillez confirmer que vous désirez réellement recréer cette page.",
        "recreate": "Recréer",
-       "confirm-purge-title": "Détruire cette page",
+       "confirm-purge-title": "Purger cette page",
        "confirm_purge_button": "Confirmer",
        "confirm-purge-top": "Voulez-vous rafraîchir cette page (purger le cache) ?",
        "confirm-purge-bottom": "Purger une page l’efface du cache et force sa dernière version à être affichée.",
index 7c09f8d..09762bf 100644 (file)
        "privacypage": "Project:Privacybelied",
        "badaccess": "Gjin tastimming",
        "badaccess-group0": "Jo hawwe gjin rjochten om de frege hanneling út te fieren.",
-       "badaccess-groups": "De frege hanneling is foarbehâlden oan brûkers yn {{PLURAL:$2|'e groep|ien fan de groepen}}: $1.",
+       "badaccess-groups": "De frege hanneling is foarbehâlden oan meidoggers yn {{PLURAL:$2|'e groep|ien fan de groepen}}: $1.",
        "versionrequired": "Ferzje $1 fan MediaWiki is eask",
        "versionrequiredtext": "Ferzje $1 fan MediaWiki is eask om dizze side te brûken. Mear ynfo is beskikber op 'e side [[Special:Version|softwareferzje]].",
        "ok": "OK",
        "preview": "Oerlêze",
        "showpreview": "Earst oerlêze",
        "showdiff": "Wizigings",
-       "anoneditwarning": "<strong>Warskôging:</strong> Jo binne net oanmeld. By it fêstlizzen wurdt jo ynternetadres opnaam yn de sideskiednis.",
+       "anoneditwarning": "<strong>Warskôging:</strong> Jo binne net oanmeld. By it fêstlizzen wurdt jo ynternetadres opnaam yn de sideskiednis. At jo <strong>[$1 oanmelde]</strong> of <strong>[$2 in akkount oanmeitsje]</strong> ferskine jo bewurkingen ûnder jo meidochnamme, njonken oare foardielen.",
        "missingsummary": "<strong>Tink derom:</strong> Jo hawwe gjin gearfetting jûn foar jo bewurking.\nAs jo nochris op ''Side opslaan'' klikke wurdt de bewurking sûnder gearfetting opslein.",
        "missingcommenttext": "Set jo opmerking beleaven hjir ûnder.",
        "missingcommentheader": "<strong>Tink derom:</strong> Jo hawwe gjin ûnderwerp/kop foar dizze opmerking opjûn.\ns jo op 'e nij op \"opslaan\" klikke, wurdt jo feroaring sûnder in ûnderwerp/kop opslein.",
        "accmailtext": "Samar in wachtwurd foar [[User talk:$1|$1]] is ferstjoerd nei $2. It kin wizige wurde op 'e side \n<em>[[Special:ChangePassword|Wachtwurd feroarje]]</em> nei oanmelden.",
        "newarticle": "(Nij)",
        "newarticletext": "Jo hawwe in keppeling folge nei in side dêr't noch gjin tekst op stiet.\nOm sels tekst te meistjsen kinne jo dy gewoan yntype in dit bewurkingsfjild\n([$1 Mear ynformaasje oer bewurkjen].)\nOars kinne jo tebek mei de tebek-knop fan jo blêder.",
-       "anontalkpagetext": "----''Dit is de oerlisside fan in ûnbekende meidogger; in meidogger dy't him/har net oanmeld hat. Om't der gjin namme bekend is, wurdt it ynternet-adres brûkt om oan te jaan wa. Mar faak is it sa dat sa'n adres net altyd troch deselde persoan brûkt wurdt. As jo it idee hawwe dat jo as ûnbekende meidogger opmerkings foar in oar krije, dan kinne jo jo [[Special:CreateAccount|registrearje]], of jo [[Special:UserLogin|oanmelde]]. Fan in oanmelde meidogger is it ynternet-adres net sichtber, en as oanmelde meidogger krije jo allinnich opmerkings dy't foar josels bedoeld binne.''",
+       "anontalkpagetext": "----\n<em>Dit is de oerlisside fan in ûnbekende meidogger; in meidogger dy't him/har net oanmeld hat.</em>\nOm't der gjin namme bekend is, wurdt it ynternet-adres brûkt om oan te jaan om wa't it giet.\nMar faak is it sa dat sa'n adres net altyd troch deselde persoan brûkt wurdt.\nAs jo it idee hawwe dat jo as ûnbekende meidogger opmerkings foar in oar krije, dan kinne jo jo [[Special:CreateAccount|registrearje]], of jo [[Special:UserLogin|oanmelde]]. Fan in oanmelde meidogger is it ynternet-adres net sichtber, en as oanmelde meidogger krije jo allinnich opmerkings dy't foar josels bedoeld binne.",
        "noarticletext": "Der stjit noch gjin tekst op dizze side. Jo kinne\n[[Special:Search/{{PAGENAME}}|hjirboppe nei dy tekst sykje]], of [{{fullurl:{{FULLPAGENAME}}|action=edit}} de side skriuwe].",
        "userpage-userdoesnotexist": "Jo bewurkje in brûkersside fan in brûker dy't net bestiet (brûker \"<nowiki>$1</nowiki>\").\nKontrolearje oft jo dizze side wol oanmeitsje/bewurkje wolle.",
        "clearyourcache": "<strong>Opmerking:</strong> Nei it fêstlizzen kin it nedich wêze de oerslach fan dyn blêder te leegjen foardat de wizigings te sjen binne.\n* <strong>Firefox / Safari:</strong> Hâld <em>Shift</em> yntreaun wylst jo op <em>Dizze side fernije</em> klikke, of typ <em>Ctrl-F5</em> of <em>Ctrl-R</em> (<em>⌘-R</em> op in Mac)\n* <strong>Google Chrome:</strong> Typ <em>CTRL-Shift-R</em> (<em>⌘-Shift-R</em> op in Mac)\n* <strong>Internet Explorer:</strong> Hâld <em>Ctrl</em> yntreaun wylst jo <em>Vernieuwen'' klikke of typ <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Leegje jo cache yn <em>Extra → Voorkeuren</em>",
        "timezoneregion-europe": "Jeropa",
        "timezoneregion-indian": "Yndyske Oseaan",
        "timezoneregion-pacific": "Stille Oseaan",
-       "allowemail": "Lit my ek netpost fan oare meidoggers krije",
+       "allowemail": "Lit my ek e-mail fan oare meidoggers ûntfange",
        "prefs-searchoptions": "Sykje",
        "prefs-namespaces": "Nammeromten",
        "default": "standert",
        "rollbacklink": "feroaring werom sette",
        "rollbackfailed": "Feroaring werom sette net slagge",
        "cantrollback": "Dizze feroaring kin net werom setten wurde, om't der mar ien skriuwer is.",
-       "alreadyrolled": "Kin de feroaring fan [[:$1]]\ntroch [[User:$2|$2]] ([[User talk:$2|Oerlis]]) net werom sette;\nin oar hat de feroaring werom set, of oars wat oan de side feroare.\n\nDe lêste feroaring wie fan [[User:$3|$3]] ([[User talk:$3|Oerlis]]).",
+       "alreadyrolled": "Kin de feroaring fan [[:$1]] troch [[User:$2|$2]] ([[User talk:$2|oerlis]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) net werom sette;\nin oar hat de feroaring werom set, of oars wat oan de side feroare.\n\nDe lêste feroaring wie fan [[User:$3|$3]] ([[User talk:$3|oerlis]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "De gearfetting wie: <em>$1</em>.",
        "revertpage": "Bewurkings fan [[Special:Contributions/$2|$2]] ([[User talk:$2|Oerlis]]) werom set ta de ferzje fan [[User:$1|$1]]",
        "rollback-success": "Feroarings werom set fan $1; werom set nei de lêste ferzje fan $2.",
        "undelete-show-file-submit": "Ja",
        "namespace": "Nammeromte:",
        "invert": "Seleksje útsein",
-       "blanknamespace": "(Haadnammerûmte)",
+       "blanknamespace": "(Ensyklopedy)",
        "contributions": "{{GENDER:$1|Meidogger}}-bydragen",
        "contributions-title": "Bydragen fan $1",
        "mycontris": "Bydragen",
        "ipbsubmit": "Slút dizze meidogger út",
        "ipbother": "In oare tiid:",
        "ipboptions": "2 oeren:2 hours,1 dei:1 day,3 dagen:3 days,1 wike:1 week,2 wiken:2 weeks,1 moanne:1 month,3 moanne:3 months,6 moanne:6 months,1 jier:1 year,ûnbeheind:infinite",
-       "badipaddress": "Gjin jildige IP-adres",
+       "badipaddress": "Gjin jildich IP-adres",
        "blockipsuccesssub": "Utsluting slagge",
        "blockipsuccesstext": "Meidogger [[Special:Contributions/$1|$1]] is útsletten.<br />\n(List fan [[Special:BlockList|útslette meidoggers]].)",
        "ipb-unblock-addr": "Lit $1 yn",
        "allmessagesname": "Namme",
        "allmessagesdefault": "Standerttekst",
        "allmessagescurrent": "Tekst yn de nijste ferzje",
-       "allmessagestext": "Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte.\nSjoch: [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation], [https://translatewiki.net translatewiki.net].",
+       "allmessagestext": "Dit is in list fan alle systeemberjochten beskikber yn de MediaWiki-nammeromte.\nSjoch [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki Localisation] en [https://translatewiki.net translatewiki.net] at jo bydrage wolle oan de basisoersettings fan MediaWiki.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter-all": "Alle",
        "allmessages-language": "Taal:",
index 3d89afe..73398af 100644 (file)
@@ -52,7 +52,8 @@
                        "Irus",
                        "Presidenvolksraad",
                        "Hidayatsrf",
-                       "MF-Warburg"
+                       "MF-Warburg",
+                       "Rachmat04"
                ]
        },
        "tog-underline": "Garis bawahi pranala:",
index 2798367..c0aa4ee 100644 (file)
        "post-expand-template-argument-warning": "'''Atençión:''' sta pàgina a contegne un ò ciù argomenti di template che son tròppo gràndi pe êse espansi. Sti argomenti no saiàn fæti védde.",
        "post-expand-template-argument-category": "Pàgine con di template che ghe mancàn di argoménti",
        "parser-template-loop-warning": "Rilevou loop do template: [[$1]]",
+       "template-loop-category": "Paggine con di template che se reciamman da lô",
+       "template-loop-category-desc": "A paggina a conten un template ch'o se reciamma da lê, saiv'a dî un template into quæ gh'è incruzo o template mæximo.",
        "parser-template-recursion-depth-warning": "Limmite de ricorscion into template superòu($1)",
        "language-converter-depth-warning": "Limmite de profonditæ do convertitô de lengoa superòu ($1)",
        "node-count-exceeded-category": "Paggine dovve l'è superòu o nummero di groppi.",
        "page_first": "primma",
        "page_last": "ûrtima",
        "histlegend": "Confronto tra verscioîn: selession-a e cascette corispondenti a-e verscioîn dexidiæ e schissa Invio oppû o pomello da basso.\n\nLegenda: (corr) = differense co-a verscion corrente, (prec) = differense co-a verscion precedente, '''m''' = modiffica minô",
-       "history-fieldset-title": "Véddi a stöia",
-       "history-show-deleted": "Sôlo scancelæ",
+       "history-fieldset-title": "Çerca de verscioin",
+       "history-show-deleted": "Solo verscioin scassæ",
        "histfirst": "primma",
        "histlast": "urtima",
        "historysize": "({{PLURAL:$1|1 byte|$1 byte}})",
        "search-file-match": "(corrispondença into contegnuo do file)",
        "search-suggest": "Fòscia ti voéivi: $1",
        "search-rewritten": "Mostro i risultæ pe $1. Atrimenti, çerca $2.",
-       "search-interwiki-caption": "Progetti fræ",
+       "search-interwiki-caption": "Risultæ da-i progetti fræ",
        "search-interwiki-default": "Risultæ da $1:",
        "search-interwiki-more": "(atro)",
+       "search-interwiki-more-results": "atri risultæ",
        "search-relatedarticle": "corelæ",
        "searchrelated": "corelæ",
        "searchall": "tùtti",
        "youremail": "Indirìsso email:",
        "username": "{{GENDER:$1|Nomme utente}}:",
        "prefs-memberingroups": "{{GENDER:$2|Membro}} {{PLURAL:$1|do gruppo|di gruppi}}:",
+       "group-membership-link-with-expiry": "$1 (scin a $2)",
        "prefs-registration": "Dæta de registraçion:",
        "yourrealname": "Nomme vêo:",
        "yourlanguage": "Léngoa:",
        "prefs-help-prefershttps": "Questa preferença a l'aviâ effetto da-o proscimo accesso.",
        "prefswarning-warning": "T'hæ fæto de modiffiche a-e teu preferense che no son ancon stæte sarvæ.\nSe ti sciorti da sta paggina sensa sciaccâ \"$1\" e preferense no saian agiornæ.",
        "prefs-tabs-navigation-hint": "Suggeimento: ti peu deuviâ i pomelli co-a freccia scinistra e drita pe navegâ tra e schede inta lista de schede.",
-       "userrights": "Manezzo di driti di utenti",
+       "userrights": "Driti utente",
        "userrights-lookup-user": "Seleçion-a un utente",
        "userrights-user-editname": "Scrivi o teu nomme utente:",
        "editusergroup": "Carrega groppi utente",
        "editinguser": "Apreuvo a cangiâ i driti de l'{{GENDER:$1|utente}} <strong>[[User:$1|$1]]</strong> $2",
        "viewinguserrights": "Vixualizaçion di driti de l'{{GENDER:$1|utente}} <strong>[[User:$1|$1]]</strong> $2",
-       "userrights-editusergroup": "Modiffica i gruppi di utenti",
-       "userrights-viewusergroup": "Vixualizza groppi utente",
+       "userrights-editusergroup": "Modiffica groppi {{GENDER:$1|utente}}",
+       "userrights-viewusergroup": "Vixualizza groppi {{GENDER:$1|utente}}",
        "saveusergroups": "Sarva groppi {{GENDER:$1|utente}}",
        "userrights-groupsmember": "Membro de:",
        "userrights-groupsmember-auto": "Membro impliçito de:",
-       "userrights-groups-help": "L'è poscibile modificâ i groppi de st'utente:\n* Una casella marcâ voeu dî che l'utente o l'è inte quello groppo.\n* Una casella smarcâ voeu dî che l'utente o no l'è inte quello groppo.\n* O scimbolo * o voeu dî che no ti poeu smarcâ o groppo una votta che ti l'hæ azonto (ò viçeversa).",
+       "userrights-groups-help": "L'è poscibile modificâ i groppi de st'utente:\n* Una casella marcâ voeu dî che l'utente o l'è inte quello groppo.\n* Una casella smarcâ voeu dî che l'utente o no l'è inte quello groppo.\n* O scimbolo * o voeu dî che no ti poeu smarcâ o groppo una votta che ti l'hæ azonto (ò viçeversa).\n* O scimbolo # o l'indica che ti poeu solo portâ inderê a dæta da descheita de l'inscriçion a questo groppo; no l'è poscibbile portala avanti",
        "userrights-reason": "Raxon:",
        "userrights-no-interwiki": "No ti g'hæ i permissi pe modificâ i driti di utenti insce di atre wiki.",
        "userrights-nodatabase": "O database $1 o no l'esiste ò o no l'è un database locale.",
        "userrights-expiry-current": "O descazze o $1",
        "userrights-expiry-none": "O no descazze",
        "userrights-expiry": "O descazze:",
+       "userrights-expiry-existing": "Scadença attoale: $2, $3",
+       "userrights-expiry-othertime": "Atra duata:",
+       "userrights-expiry-options": "1 giorno:1 day,1 setteman-a:1 week,1 meise:1 month,3 meixi:3 months,6 meixi:6 months,1 anno:1 year",
+       "userrights-invalid-expiry": "A scadença pe-o groppo \"$1\" a no l'è vallida",
+       "userrights-expiry-in-past": "A scadença pe-o groppo \"$1\" a l'è za passâ.",
+       "userrights-cannot-shorten-expiry": "No ti poeu antiçipâ a descheita de l'inscriçion a-o groppo \"$1\". Soltanto i utenti co-o permisso de azonze e rimoeuve questo groppo poeuan antiçipâ e descheite.",
        "userrights-conflict": "Conflito de modiffica di driti utente! Pe piaxei controlla e conferma e teu modiffiche.",
        "group": "Gruppo:",
        "group-user": "Ûtenti",
        "action-upload_by_url": "caregâ sto file da un addreçço URL",
        "action-writeapi": "deuviâ l'API in scrittua",
        "action-delete": "scassâ 'sta paggina",
-       "action-deleterevision": "scassâ sta verscion",
-       "action-deletedhistory": "vixualizzâ a cronologia scassâ de sta pagina",
+       "action-deleterevision": "scassâ verscioin",
+       "action-deletelogentry": "scassâ e voxe de registro",
+       "action-deletedhistory": "vixualizzâ a cronologia scassâ de 'na paggina",
+       "action-deletedtext": "vixualizâ o testo de verscioin scassæ",
        "action-browsearchive": "çercâ paggine scassæ",
-       "action-undelete": "Recuppera sta paggina",
-       "action-suppressrevision": "rivedde e ripristinâ e modiffiche ascose",
+       "action-undelete": "recuperâ paggine",
+       "action-suppressrevision": "rivedde e ripristinâ e verscioin ascose",
        "action-suppressionlog": "vedde questo registro privou",
        "action-block": "bloccâ st'utente in scrittua",
        "action-protect": "modificâ i livelli de proteçion pe questa pagina",
        "action-userrights-interwiki": "modificâ i driti di utenti insce di atre wiki",
        "action-siteadmin": "broccâ e sbroccâ o database",
        "action-sendemail": "mandâ di e-mail",
+       "action-editmyoptions": "modificâ e proppie preferençe",
        "action-editmywatchlist": "modificâ a to lista di öservæ",
        "action-viewmywatchlist": "vedde i to öservæ speçiali",
        "action-viewmyprivateinfo": "vedde i proppi dæti personali",
        "recentchanges-legend-heading": "<strong>Legenda:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (veddi e [[Special:NewPages|neuve paggine]])",
        "recentchanges-submit": "Fanni vedde",
+       "rcfilters-activefilters": "Filtri attivi",
+       "rcfilters-quickfilters": "Inganci rappidi",
+       "rcfilters-quickfilters-placeholder": "Sarva e to impostaçioin prefeie pe riutilizâle doppo.",
+       "rcfilters-savedqueries-defaultlabel": "Filtri sarvæ",
+       "rcfilters-savedqueries-rename": "Rinommina",
+       "rcfilters-savedqueries-setdefault": "Imposta comme predefinio",
+       "rcfilters-savedqueries-unsetdefault": "Rimoeuvi comme predefinio",
+       "rcfilters-savedqueries-remove": "Leva",
+       "rcfilters-savedqueries-new-name-label": "Nomme",
+       "rcfilters-savedqueries-apply-label": "Crea ingancio rappido",
+       "rcfilters-savedqueries-cancel-label": "Anulla",
+       "rcfilters-savedqueries-add-new-title": "Sarva filtri comme ingancio rappido",
+       "rcfilters-restore-default-filters": "Ripristina i filtri predefinii",
+       "rcfilters-clear-all-filters": "Netezza tutti i filtri",
+       "rcfilters-search-placeholder": "Filtra i urtime modiffiche (navega ò comença a digitâ)",
+       "rcfilters-invalid-filter": "Filtro non vallido",
+       "rcfilters-empty-filter": "Nisciun filtro attivo. Se ghe vedde tutti i contributi.",
        "rcfilters-filterlist-title": "Filtri",
        "rcfilters-filterlist-whatsthis": "Cos'o l'è sto chì?",
        "rcfilters-filterlist-feedbacklink": "Lascia un commento in sciâ noeuva fonçionalitæ sperimentale",
        "rcfilters-filterlist-noresults": "Nisciun filtro atrovou",
        "rcfilters-noresults-conflict": "Nisciun risultou trovou percose i critei de çerchia son in conflito",
        "rcfilters-state-message-subset": "Sto filtro chì o no g'ha effetto percose i so risultæ son incluxi con quelli  {{PLURAL:$2|do seguente filtro ciu ampio|di  seguenti filtri ciu ampi}} (proeuva a evidençiâli pe distinguili): $1",
+       "rcfilters-state-message-fullcoverage": "A seleçion de tutti i filtri inte 'n groppo l'è comme no seleçionâne manc'un, coscì che sto filtro o no fa effetto. O groppo o l'includde: $1",
+       "rcfilters-filtergroup-registration": "Registraçion utente",
+       "rcfilters-filter-registered-label": "Registrou",
+       "rcfilters-filter-unregistered-label": "Non registrou",
+       "rcfilters-filtergroup-authorship": "Aotô do contributo",
+       "rcfilters-filter-editsbyself-label": "E to modiffiche",
+       "rcfilters-filter-editsbyself-description": "I to contributi.",
+       "rcfilters-filter-editsbyother-label": "E modiffiche di atri",
+       "rcfilters-filter-editsbyother-description": "Tutte e modiffiche sarvo e to.",
+       "rcfilters-filtergroup-userExpLevel": "Livello d'esperiença (solo pe i utenti registræ)",
+       "rcfilters-filter-user-experience-level-newcomer-label": "Noeuvi utenti",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Meno de 10 modiffiche e 4 giorni d'attivitæ.",
+       "rcfilters-filter-user-experience-level-experienced-label": "Utenti con esperiença",
+       "rcfilters-filter-user-experience-level-experienced-description": "Ciù de 30 giorni d'attivitæ e 500 modiffiche.",
+       "rcfilters-filtergroup-automated": "Contributi aotomattichi",
+       "rcfilters-filter-bots-label": "Bot",
+       "rcfilters-filter-bots-description": "Modiffiche effettoæ da strumenti aotomattichi.",
+       "rcfilters-filter-humans-label": "Umoen (non bot)",
+       "rcfilters-filter-humans-description": "Modiffiche effettoæ da di contributoî umoen.",
+       "rcfilters-filtergroup-reviewstatus": "Stato da revixon",
+       "rcfilters-filter-patrolled-label": "Veificæ",
+       "rcfilters-filter-patrolled-description": "Modiffiche contrassegnæ comme veificæ.",
+       "rcfilters-filter-unpatrolled-label": "Non veificæ",
+       "rcfilters-filter-unpatrolled-description": "Modiffiche non contrassegnæ comme veificæ.",
+       "rcfilters-filtergroup-significance": "Scignificou",
+       "rcfilters-filter-minor-label": "Cangiamenti menoî",
+       "rcfilters-filter-minor-description": "Modiffiche che l'aoto o l'ha indicou comme minoî.",
+       "rcfilters-filter-major-label": "Cangiamenti non menoî",
+       "rcfilters-filter-watchlist-watched-label": "Sotta oservaçion",
+       "rcfilters-filtergroup-changetype": "Tipo de modiffica",
+       "rcfilters-filter-pageedits-label": "Modiffiche a-e paggine",
+       "rcfilters-filter-newpages-label": "Creaçioin de paggine",
+       "rcfilters-filter-logactions-description": "Açioin aministrative, creaçioin utençe, eliminaçioin paggine, caregamenti....",
+       "rcfilters-filtergroup-lastRevision": "Urtima revixon",
+       "rcfilters-filter-lastrevision-label": "Urtima revixon",
+       "rcfilters-filter-lastrevision-description": "I urtime modiffiche a 'na paggina.",
+       "rcfilters-filter-previousrevision-label": "Verscioin precedente",
        "rcnotefrom": "Chì sotta gh'è {{PLURAL:$5|o cangiamento|i cangiamenti}} a partî da <strong>$3, $4</strong> (scin a '''$1''').",
        "rclistfrom": "Fanni vedde e modiffiche apportæ partindo da $3 $2",
        "rcshowhideminor": "$1 cangiaménti minoî",
        "apisandbox-sending-request": "Invio recesta de API...",
        "apisandbox-loading-results": "Riceçion di risultæ de API in corso...",
        "apisandbox-results-error": "S'è veificou un errô durante o caregamento da risposta a l'interrogaçion API: $1",
+       "apisandbox-request-selectformat-label": "Mostra i dæti recesti comme:",
        "apisandbox-request-url-label": "URL de recesta:",
        "apisandbox-request-time": "Tempo richiesto: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Correzi token e reinvia",
        "magiclink-tracking-rfc-desc": "Sta paggina a l'adoeuevia di inganci maggichi RFC. Amia [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] insce comme ezeguî a migraçion.",
        "magiclink-tracking-pmid": "Paggine ch'adoeuvian di inganci maggichi PMID",
        "magiclink-tracking-pmid-desc": "Sta paggina a l'adoeuvia dio inganci maggichi PMID. Amia [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] sciu comme exeguî a migraçion.",
+       "magiclink-tracking-isbn": "Paggine ch'adoeuvian di inganci maggichi ISBN",
+       "magiclink-tracking-isbn-desc": "Sta paggina a l'adoeuvia di inganci maggichi ISBN. Amia [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] sciu comme exeguî a migraçion.",
        "specialloguserlabel": "Açion effettuâ da:",
        "speciallogtitlelabel": "Açion effettuâ sciu (tittolo da paggina ò {{ns:user}}:Nomme utente):",
        "log": "Log",
        "activeusers-intro": "Questo o l'è un elenco di utenti ch'han avuo quarche tipo d'attivitæ da $1 {{PLURAL:$1|giorno|giorni}} a questa parte.",
        "activeusers-count": "$1 {{PLURAL:$1|açion|açioin}} {{PLURAL:$3|inte l'urtimo giorno|inti urtimi $3 giorni}}",
        "activeusers-from": "Mostra i utenti a partî da:",
+       "activeusers-groups": "Vixualizza i utenti ch'apartegnan a di groppi:",
+       "activeusers-excludegroups": "Escluddi i utenti ch'apartegnan a di groppi:",
        "activeusers-noresult": "Nisciun utente o risponde a-i critei impostæ.",
        "activeusers-submit": "Mostra utenti attivi",
        "listgrouprights": "Driti do groppo utente",
        "emailccsubject": "Coppia do messaggio inviou a $1: $2",
        "emailsent": "E-mail spedïa",
        "emailsenttext": "A teu e-mail a l'è stæta spedïa.",
-       "emailuserfooter": "Questa email a l'è stæta {{GENDER:$1|inviâ}} da $1 a {{GENDER:$2|$2}} a traverso a fonçion \"{{int:emailuser}}\" insce {{SITENAME}}.",
+       "emailuserfooter": "Questa email a l'è stæta {{GENDER:$1|inviâ}} da $1 a {{GENDER:$2|$2}} a traverso a fonçion \"{{int:emailuser}}\" insce {{SITENAME}}. Se {{GENDER:$2|ti ghe rispondi}}, a to email de risposta a saiâ spedia direttamente {{GENDER:$1|a-o|a-a}} mittente originâ, rivelando{{GENDER:$1|ghe}} o {{GENDER:$2|to}} adresso de posta elettronica.",
        "usermessage-summary": "Messaggio de scistema",
        "usermessage-editor": "Messaggê de scistema",
        "watchlist": "Sotta osservassion",
index 884d21d..f10cdb6 100644 (file)
        "post-expand-template-argument-warning": "'''သတိပေးချက် -''' ဤစာမျက်နှာတွင် ပမာဏအားဖြင့် ကြီးမားကျယ်ပြန့်သော template argument တစ်ခုပါဝင်သည်။\nယင်း arguments များကို ဖယ်ထုတ်လိုက်သည်။",
        "post-expand-template-argument-category": "ဖယ်ထုတ်ထားသော template arguments များပါဝင်သည့် စာမျက်နှာများ",
        "parser-template-loop-warning": "တမ်းပလိတ်များ လှည့်ပတ်ဆက်စပ် နေသည်ကို တွေ့ရသည်။ [[$1]]",
-       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|ဆွေးနွေး]]) ၏ $1 ပြင်ဆင်ချက် $1 ကို ပြန်လည်ပယ်ဖျက်လိုက်သည်",
+       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|ဆွေးနွေး]]) ၏ တည်းဖြတ်မူ $1 ကို ပြန်လည်ပယ်ဖျက်လိုက်သည်",
        "viewpagelogs": "ဤစာမျက်နှာအတွက် မှတ်တမ်းများကို ကြည့်ရန်",
        "nohistory": "ဤစာမျက်နှာတွင် တည်းဖြတ်မှု ရာဇဝင်မရှိပါ",
        "currentrev": "နောက်ဆုံးမူ",
index aed37e7..8358378 100644 (file)
        "duration-centuries": "$1 {{PLURAL:$1|век|века|векова}}",
        "duration-millennia": "$1 {{PLURAL:$1|миленијум|миленијума|миленијума}}",
        "rotate-comment": "Слика је ротирана за $1° у смеру казаљке на сату",
+       "limitreport-title": "Подаци профилисања анализатора:",
+       "limitreport-cputime": "Време коришћења CPU",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|секунда|секунд|секунди}}",
        "limitreport-walltime": "Коришћење у реалном времену",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|секунда|секунди}}",
+       "limitreport-ppvisitednodes": "Број предпроцесираних посећених нодова",
+       "limitreport-ppgeneratednodes": "Број предпроцесираних генерисаних нодова",
+       "limitreport-postexpandincludesize": "Укључена величина након проширења",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|бајт|бајта|бајтова}}",
+       "limitreport-templateargumentsize": "Величина аргумената шаблона",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|бајт|бајта|бајтова}}",
+       "limitreport-expansiondepth": "Највећа дубина проширења",
+       "limitreport-expensivefunctioncount": "Број „скупих” функција анализатора",
        "expandtemplates": "Замена шаблона",
        "expand_templates_intro": "Ова посебна страница узима текст и мења све шаблоне у њему рекурзивно.\nТакође мења функције парсера као што је <code><nowiki>{{</nowiki>#language:…}}</code> и променљиве као што је <code><nowiki>{{</nowiki>CURRENTDAY}}</code>. \nЗаправо практично све што се налази између витичастих заграда.",
        "expand_templates_title": "Назив контекста; за {{СТРАНИЦА}} итд.:",
index 6e0f085..6204632 100644 (file)
@@ -25,7 +25,8 @@
                        "Matma Rex",
                        "Mega Aleksandar",
                        "Asmen",
-                       "Obsuser"
+                       "Obsuser",
+                       "Zoranzoki21"
                ]
        },
        "tog-underline": "Podvlačenje veza:",
        "toolbox": "Alatke",
        "tool-link-userrights": "Promeni {{GENDER:$1|korisnik}} grupe",
        "tool-link-userrights-readonly": "Prikaži {{GENDER:$1|korisnik}} grupe",
-       "tool-link-emailuser": "Pošalji imejl",
+       "tool-link-emailuser": "Pošalji imejl {{GENDER:$1|korisniku|korisnici}}",
        "userpage": "Pogledaj korisničku stranicu",
        "projectpage": "Pogledaj stranicu projekta",
        "imagepage": "Pogledaj stranicu datoteke",
        "duration-centuries": "$1 {{PLURAL:$1|vek|veka|vekova}}",
        "duration-millennia": "$1 {{PLURAL:$1|milenijum|milenijuma|milenijuma}}",
        "rotate-comment": "Slika je rotirana za $1° u smeru kazaljke na satu",
+       "limitreport-title": "Podaci profilisanja analizatora:",
+       "limitreport-cputime": "Vreme korišćenja CPU",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|sekunda|sekund|sekundi}}",
+       "limitreport-walltime": "Korišćenje u realnom vremenu",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|sekund|sekunde|sekundi}}",
+       "limitreport-ppvisitednodes": "Broj predprocesiranih posećenih nodova",
+       "limitreport-ppgeneratednodes": "Broj predprocesiranih generisanih nodova",
+       "limitreport-postexpandincludesize": "Uključena veličina nakon proširenja",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|bajt|bajta|bajtova}}",
+       "limitreport-templateargumentsize": "Veličina argumenata šablona",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bajt|bajta|bajtova}}",
+       "limitreport-expansiondepth": "Najveća dubina proširenja",
+       "limitreport-expensivefunctioncount": "Broj „skupih” funkcija analizatora",
        "expandtemplates": "Zamena šablona",
        "expand_templates_intro": "Ova posebna stranica uzima tekst i menja sve šablone u njemu rekurzivno.\nTakođe menja funkcije parsera kao što je <code><nowiki>{{</nowiki>#language:…}}</code> i promenljive kao što je <code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nZapravo praktično sve što se nalazi između vitičastih zagrada.",
        "expand_templates_title": "Naziv konteksta; za {{STRANICA}} itd.:",
index 800b4d4..ba31f03 100644 (file)
@@ -94,7 +94,8 @@
                        "1917 Ekim Devrimi",
                        "Asmen",
                        "Stephanecbisson",
-                       "Alerque"
+                       "Alerque",
+                       "Bulgu"
                ]
        },
        "tog-underline": "Bağlantıların altını çizme:",
        "invalid-content-data": "Geçersiz içerik verisi",
        "content-not-allowed-here": "\"$1\" içeriğine, [[$2]] sayfasında izin verilmemekte.",
        "editwarning-warning": "Bu sayfadan ayrılmak yaptığınız herhangi bir değişikliği kaybetmenize sebep olabilir.\nEğer giriş yaptıysanız, bu uyarıyı, tercihlerinizin \"{{int:prefs-editing}}\" bölümünde devre dışı bırakabilirsiniz.",
+       "editpage-invalidcontentmodel-text": "\"$1\" içerik modeli desteklenmemektedir.",
        "editpage-notsupportedcontentformat-title": "İçerik biçimi desteklenmiyor",
        "editpage-notsupportedcontentformat-text": "$1 içerik biçimi $2 içerik modeli tarafından desteklenmiyor.",
        "content-model-wikitext": "vikimetin",
        "userrights-nodatabase": "$1 veritabanı mevcut veya bölgesel değil",
        "userrights-changeable-col": "Değiştirebildiğiniz gruplar",
        "userrights-unchangeable-col": "Değiştiremediğiniz gruplar",
-       "userrights-expiry-current": "$2 günü saat $3 itibarıyla sona eriyor",
+       "userrights-expiry-current": "$1 tarihi itibarıyla sona eriyor",
        "userrights-expiry-none": "Süresiz",
        "userrights-expiry": "Bitiş:",
        "userrights-expiry-existing": "Mevcut bitiş süresi: $2 $3",
        "addedwatchtext": "\"[[:$1]]\" sayfası [[Special:Watchlist|izleme listenize]] eklenmiştir.\nBundan sonra, bu sayfaya ve ilgili tartışma sayfasına yapılacak değişiklikler burada listelenecek.",
        "addedwatchtext-short": "\"$1\" sayfası izleme listenize eklendi.",
        "removewatch": "İzleme listesinden kaldır",
-       "removedwatchtext": "\"[[:$1]]\" sayfası [[Special:Watchlist|izleme listenizden]] silinmiştir.",
+       "removedwatchtext": "\"[[:$1]]\" sayfası, tartışma sayfası ile birlikte [[Special:Watchlist|izleme listenizden]] silinmiştir.",
        "removedwatchtext-short": "\"$1\" sayfası izleme listenizden çıkarıldı.",
        "watch": "izle",
        "watchthispage": "Sayfayı izle",
        "undeletepagetext": "Aşağıdaki {{PLURAL:$1|sayfa|$1 sayfa}} silinmiştir ama hala arşivdedir ve geri getirilebilir.\nArşiv düzenli olarak temizlenebilir.",
        "undelete-fieldset-title": "Revizyonları geri yükle",
        "undeleteextrahelp": "Sayfanın tüm geçmişini geri getirmek için onay kutularını boş bırakarak '''''{{int:undeletebtn}}''''' tuşuna tıklayın.\nSayfanın geçmişini ayrı ayrı getirmek için geri getirmek istediğiniz değişikliklerin onay kutularını seçip '''''{{int:undeletebtn}}''''' tuşuna tıklayın.",
-       "undeleterevisions": "$1 {{PLURAL:$1|revizyon|revizyon}} arşivlendi",
+       "undeleterevisions": "$1 revizyon silindi",
        "undeletehistory": "Eğer sayfayı geri getirirseniz, tüm revizyonlar geçmişe geri getirilecektir.\nSilindikten sonra aynı isimle yeni bir sayfa oluşturulmuşsa, geri gelen revizyonlar varolan sayfanın geçmişinde görünecektir.",
        "undeleterevdel": "Eğer üst sayfada sonuçlanacaksa ya da dosya revizyonu kısmen silinmiş ise, silmeyi geri alma uygulanamaz.\nBöyle durumlarda, en yeni silinen revizyonu seçmemeli ya da gizlemesini kaldırmalısınız.",
        "undeletehistorynoadmin": "Bu madde silinmiştir. Silinme sebebi ve silinme öncesinde maddeyi düzenleyen kullanıcıların detayları aşağıdaki özette verilmiştir. Bu silinmiş sürümlerin metinleri ise sadece hizmetliler tarafından görülebilir.",
        "tooltip-pt-watchlist": "Değişiklikler için izlemeye aldığınız sayfaların listesi",
        "tooltip-pt-mycontris": "{{GENDER:|Katkılarınızın}} listesi",
        "tooltip-pt-anoncontribs": "Bu IP adresinden yapılmış değişiklikler listesi",
-       "tooltip-pt-login": "Oturum açmanız tavsiye edilmektedir; ancak bu zorunda değildir",
+       "tooltip-pt-login": "Oturum açmanız tavsiye edilmektedir; ancak bu zorunlu değildir",
        "tooltip-pt-logout": "Sistemden çık",
        "tooltip-pt-createaccount": "Bir hesap oluşturup oturum açmanız tavsiye edilmektedir ancak bu zorunlu değildir",
        "tooltip-ca-talk": "İçerik ile ilgili tartışma",
        "scarytranscludefailed-httpstatus": "[$1 için şablon alımı başarısız oldu: HTTP $2]",
        "scarytranscludetoolong": "[URL çok uzun]",
        "deletedwhileediting": "'''Uyarı''': Bu sayfa siz değişiklik yapmaya başladıktan sonra silinmiş!",
-       "confirmrecreate": "Bu sayfayı [[User:$1|$1]] ([[User talk:$1|mesaj]]) kullanıcısı siz sayfada değişiklik yaparken silmiştir, nedeni:\n: ''$2''\nSayfayı baştan açmak isityorsanız, lütfen onaylayın.",
+       "confirmrecreate": "Bu sayfayı [[User:$1|$1]] ([[User talk:$1|mesaj]]) kullanıcısı siz sayfada değişiklik yaparken silmiştir, nedeni:\n: ''$2''\nSayfayı baştan açmak istiyorsanız, lütfen onaylayın.",
        "confirmrecreate-noreason": "[[User:$1|$1]] ([[User talk:$1|mesaj]]) adlı kullanıcı, siz değişiklik yapmaya başladıktan sonra bu sayfayı sildi. Lütfen bu sayfayı gerçekten yeniden oluşturmak istediğinizi onaylayın.",
        "recreate": "Canlandır",
        "unit-pixel": "px",
        "mw-widgets-mediasearch-noresults": "Sonuç bulunamadı.",
        "mw-widgets-titleinput-description-new-page": "sayfa henüz mevcut değil",
        "mw-widgets-titleinput-description-redirect": "$1'e yönlendirildi",
+       "mw-widgets-categoryselector-add-category-placeholder": "Bir kategori ekle...",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "çerez tabanlı oturumlar",
        "sessionprovider-nocookies": "Çerezler devre dışı olabilir. Çerkezlerin aktif olduğuna emin olun ve yeniden başlatin.",
        "randomrootpage": "Rastgele kök sayfası",
index 458dacf..142a4e5 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 require_once __DIR__ . '/Maintenance.php';
+use MediaWiki\MediaWikiServices;
 
 /**
  * Maintenance script that rebuilds recent changes from scratch.
@@ -478,15 +479,16 @@ class RebuildRecentchanges extends Maintenance {
        }
 
        /**
-        * Purge cached feeds in $messageMemc
+        * Purge cached feeds in $wanCache
         */
        private function purgeFeeds() {
-               global $wgFeedClasses, $messageMemc;
+               global $wgFeedClasses;
 
                $this->output( "Deleting feed timestamps.\n" );
 
+               $wanCache = MediaWikiServices::getInstance()->getMainWANObjectCache();
                foreach ( $wgFeedClasses as $feed => $className ) {
-                       $messageMemc->delete( wfMemcKey( 'rcfeed', $feed, 'timestamp' ) ); # Good enough for now.
+                       $wanCache->delete( $wanCache->makeKey( 'rcfeed', $feed, 'timestamp' ) ); # Good enough for now.
                }
        }
 }
index 4237639..5a75e5a 100644 (file)
@@ -1685,6 +1685,7 @@ return [
        'mediawiki.page.watch.ajax' => [
                'scripts' => 'resources/src/mediawiki/page/watch.js',
                'dependencies' => [
+                       'mediawiki.page.startup',
                        'mediawiki.api.watch',
                        'mediawiki.notify',
                        'mediawiki.util',
diff --git a/skins/CologneBlue b/skins/CologneBlue
new file mode 160000 (submodule)
index 0000000..099cd47
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 099cd475de83aa47718e1b28a06bd213a72350de
diff --git a/skins/Modern b/skins/Modern
new file mode 160000 (submodule)
index 0000000..ef5b352
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ef5b35219a1a60ae823bd932286cd5fcb9e09ced
diff --git a/skins/MonoBook b/skins/MonoBook
new file mode 160000 (submodule)
index 0000000..95e869b
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 95e869bed0488b57005d45d0f18c8e860aeaa21f
diff --git a/skins/Nostalgia b/skins/Nostalgia
new file mode 160000 (submodule)
index 0000000..08de4d3
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 08de4d38babc1da1295c047669a2cb8030cd956d
diff --git a/skins/Vector b/skins/Vector
new file mode 160000 (submodule)
index 0000000..cb9e814
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit cb9e8147002ff331586ac160b047f52260079888
diff --git a/vendor b/vendor
new file mode 160000 (submodule)
index 0000000..75b4998
--- /dev/null
+++ b/vendor
@@ -0,0 +1 @@
+Subproject commit 75b49988c8467f685aa16df228bb59af34b2d6e6