Update to MediaWiki 1.35.2

This commit is contained in:
Pierre Schmitz 2021-04-23 17:17:01 +02:00
parent 05f29752d6
commit 5738b07dc3
367 changed files with 8269 additions and 5784 deletions

2
.gitignore vendored
View File

@ -9,7 +9,7 @@
.project
.settings
AdminSettings.php
LocalSettings.php
/LocalSettings.php
StartProfiler.php
cscope.files
cscope.out

View File

@ -712,6 +712,7 @@ The following list can be found parsed under Special:Version/Credits -->
* Sebastian Brückner
* Sébastien Santoro
* Sergio Santoro
* Serhio Magpie
* Sethakill
* setian
* Sfic

View File

@ -9,9 +9,103 @@ declare 1.35 as supporting PHP 8.0.
PHP 8.0 workboard: https://phabricator.wikimedia.org/tag/php_8.0_support/
== MediaWiki 1.35.2 ==
This is a security and maintenance release of the MediaWiki 1.35 branch.
MediaWiki 1.35.2 supports Composer 2.0. It is reccommended to make sure your
libraries are up to date on Composer 1.x, before running Composer 2.x.
While normally running update.php isn't required for point releases,
it is recommended to run it for 1.35.2 so that iwlinks.iwl_prefix is
updated to take 32 characters.
=== Changes since MediaWiki 1.35.1 ===
* (T270450) The confusingly-named User->isLoggedIn() method has been deprecated
in favour of the method it wraps, User->isRegistered().
* Upgrade pimple/pimple from 3.3.0 to 3.3.1 for PHP 8.0 support.
* Upgrade seld/jsonlint from 1.7.1 to 1.8.3 for PHP 8.0 support.
* Upgrade doctrine/dbal from 2.10.4 to 3.0.0 for PHP 8.0 support.
* (T270734) Fix display of Special:Preferences URL in password reset email.
* (T252774, T271441) resourceloader: Give SkinModule 'features' option an
extensible default.
* (T271441) Unknown features shouldn't break style output.
* (T264986) Make use of CURLMOPT_MAX_HOST_CONNECTIONS conditional on having
curl >= 7.30.0.
* DefaultSettings.php: Update $wgPingback documentation.
* Fix docs for LanguageConverter::translate.
* (T272250) Don't rely on implicit string->int cast in comparison.
* (T272327) Exif::isSlong: Cast input to float so PHP 8.0 abs() doesn't whine.
* (T272328) UploadBase: Don't call MimeAnalyzer if mTempPath is null.
* Remove nonfunctional default sampling for WANObjectCache metrics.
* (T258851) Prevent service injection to LoadExtensionSchemaUpdates hook.
* (T270852) Hooks: Map dash character to underscore when generating hook names.
* (T271551, T270145) Fix fetching ipblock-exempt within
BlockManager::getUserBlock.
* PHPVersionCheck: The PHP Group only supports PHP >= 7.3.0.
* (T248925) Set empty closures in DatabaseTest to fix PHP 8 tests.
* (T34217) rdbms: Remove outdated MySQL 4 references and fix doc URLs.
* (T248925) Special:Contributions reports negative namespace error on PHP 8.
* (T248925) objectcache: Fix non-numeric string check in HashBagOStuff for
PHP 8.
* (T248925) Fix CacheTime::getCacheExpiry for PHP 8.
* (T259685) Allow REST API POST handlers to opt out of mandatory SQLite locking.
* (T91820, T259685) MWLBFactory: rename magic HTTP header for opting out of
SQLite write lock.
* (T272326) Fix DeprecationHelperTest on PHP 8.
* Upgrade wikimedia/less.php from 3.0.0 to 3.1.0 for PHP 8.0 support.
* (T236639) OutputPage: Make $wgDebugRedirects work again.
* (T274648) registration: Allow reusing cached metadata between wikis.
* CdnCacheUpdate: Send full URL instead of path to Curl for purge.
* Upgrade monolog/monolog from 1.25.3 to 2.2.0 for PHP 8.0 support.
* FileBackend: Do not use SOCKET_ENOENT on windows.
* (T275441) ApiQueryUserInfo: Allow all uiprops to be requested at once.
* (T275261) Escape wikitext in the title in invalid title error messages.
* (T275242) Extend iwlinks.iwl_prefix to VARBINARY(32) on MySQL.
* (T246594, T270228) PHPVersionCheck: Complain about known-bad versions above
minimum.
* (T275824) Upgrade wikimedia/composer-merge-plugin from 1.4.1 to 2.0.1 for
Composer 2.0 support.
* (T269293) Record all used options in metadata.
* Allow usage of Composer 2.0 to install MediaWiki's dependencies.
* (T259872) skins: Call headElement() after getTemplateData() in SkinMustache.
* (T277009, CVE-2021-30158) SECURITY: Allow blocked users to access
Special:ResetTokens.
* (T272412) Add "Account data" section to user preferences.
* (T268310) Add list of thumbnail urls to LocalFilePurgeThumbnails hook.
* (T277520) registration: Allow specifying immovable namespaces in
extension.json.
* (T275619) Maintenance::hasOption and Maintenance::getOption now behave as
documented and are not altered by previous calls to these methods.
* (T254688) Remove page inner join from subquery in SpecialWhatLinksHere.
* (T122124) signup: added help message for security.
* (T278014, CVE-2021-30154) SECURITY: Escape mediastatistics-header-* messages
on Special:NewFiles.
* (T278058, CVE-2021-30157) SECURITY: Escape rcfilters-filter-* messages on
ChangesList pages.
* (T277414) HTMLFormField: Use non namespaced class name rather than
static::class.
* (T268673) maintenance: Don't create SearchUpdate in rebuildtextindex.php
for page_namespace below 0.
* (T246594, T270228) Mark ParserOptionsTests skipped on PHP 7.4.0-7.4.8.
* (T268230) Switch to new MediaWiki logo by Serhio Magpie.
* (T271735) Expand config-pingback-help, link to privacy policy in
config-pingback.
* Fix documentation of user-global in $wgRateLimits.
* BackupDumper: Add -o as shortcode for --output.
* (T235554) Disable DEFER_SET_LENGTH_AND_FLUSH headers to avoid HTTP errors.
* (T270713, CVE-2021-30152) SECURITY: Allow user to only apply protection they
have right to do so via action=protect.
* (T272386, CVE-2021-30159) SECURITY: Non-admin deleted enwiki page in fast
double move.
* (T270988, CVE-2021-30155) SECURITY: ContentModelChange: Check that user can
create pages.
* (T279451, CVE-2021-30458) SECURITY: Parsoid comment fostering allows for
inserting mostly arbitrary <meta> tags.
== MediaWiki 1.35.1 ==
This is a maintenance release of the MediaWiki 1.35 branch.
This is a security and maintenance release of the MediaWiki 1.35 branch.
While normally running update.php isn't required for point releases,
it is recommended to run it for 1.35.1 so that sites.site_language is
@ -487,20 +581,20 @@ For notes on 1.34.x and older releases, see HISTORY.
==== New external libraries ====
* Added wikimedia/ip-utils 1.0.0.
* Added wikimedia/parsoid 0.12.1.
* Added wikimedia/parsoid 0.12.2.
* Added wikimedia/services 2.0.1.
* Added taylorhakes/promise-polyfill v8.1.3.
* Added vuejs v2.6.11.
* Added vuex v3.1.3.
===== New development-only external libraries =====
* Added doctrine/dbal 2.10.2.
* Added doctrine/dbal 3.0.0.
* Added doctrine/sql-formatter 1.1.0.
* Added pimple/pimple 3.3.0.
* Added pimple/pimple 3.3.1.
==== Changed external libraries ====
* pear/mail_mime was upgraded from 1.10.2 to 1.10.8.
* wikimedia/less.php was upgraded from 1.8.0 to 3.0.0.
* wikimedia/less.php was upgraded from 1.8.0 to 3.1.0.
* Updated oojs from 3.0.0 to 5.0.0.
* Updated OOUI from 0.35.1 to 0.39.3.
* zordius/lightncandy was upgraded from 0.23.0 to 1.2.5.
@ -518,6 +612,7 @@ For notes on 1.34.x and older releases, see HISTORY.
* Updated wikimedia/remex-html from 2.1.0 to 2.2.0.
* Replaced wikimedia/password-blacklist 0.1.4 with wikimedia/common-passwords
0.2.0.
* Updated wikimedia/composer-merge-plugin from 1.4.1 to 2.0.1.
===== Changed development-only external libraries =====
* Updated symfony/yaml from 3.4.28 to 5.0.5.
@ -525,12 +620,13 @@ For notes on 1.34.x and older releases, see HISTORY.
* Updated php-parallel-lint/php-console-highlighter from v0.3.2 to v0.5.
* Updated php-parallel-lint/php-parallel-lint from v0.9.2 to v1.2.0.
* Updated psy/psysh from 0.9.9 to 0.10.4.
* Updated monolog/monolog from 1.24.0 to 1.25.2.
* Updated monolog/monolog from 1.24.0 to 2.2.0.
* Upgrade mediawiki-codesniffer from 28.0.0 to 34.0.0.
* Updated composer/spdx-licenses from 1.5.1 to 1.5.3.
* Updated monolog/monolog from 1.25.2 to 1.25.3.
* Updated qunit from 2.9.1 to 2.10.0.
* Updating wikimedia/testing-access-wrapper from 1.0.0 to 2.0.0.
* Updated seld/jsonlint from 1.7.1 to 1.8.3.
==== Removed external libraries ====
* phpunit/php-invoker (dev-only).

View File

@ -2,7 +2,10 @@
"name": "mediawiki/core",
"description": "Free software wiki application developed by the Wikimedia Foundation and others",
"type": "mediawiki-core",
"keywords": ["mediawiki", "wiki"],
"keywords": [
"mediawiki",
"wiki"
],
"homepage": "https://www.mediawiki.org/",
"authors": [
{
@ -18,7 +21,6 @@
},
"prefer-stable": true,
"require": {
"composer-plugin-api": "^1.1",
"composer/semver": "1.7.2",
"cssjanus/cssjanus": "1.3.0",
"ext-ctype": "*",
@ -44,13 +46,13 @@
"wikimedia/cdb": "1.4.1",
"wikimedia/cldr-plural-rule-parser": "1.0.0",
"wikimedia/common-passwords": "0.2.0",
"wikimedia/composer-merge-plugin": "1.4.1",
"wikimedia/composer-merge-plugin": "2.0.1",
"wikimedia/html-formatter": "1.0.2",
"wikimedia/ip-set": "2.1.0",
"wikimedia/ip-utils": "1.0.0",
"wikimedia/less.php": "3.0.0",
"wikimedia/less.php": "3.1.0",
"wikimedia/object-factory": "2.1.0",
"wikimedia/parsoid": "0.12.1",
"wikimedia/parsoid": "0.12.2",
"wikimedia/php-session-serializer": "1.0.7",
"wikimedia/purtle": "1.0.7",
"wikimedia/relpath": "2.1.1",
@ -67,23 +69,23 @@
},
"require-dev": {
"composer/spdx-licenses": "1.5.3",
"doctrine/dbal": "2.10.2",
"doctrine/dbal": "3.0.0",
"doctrine/sql-formatter": "1.1.0",
"giorgiosironi/eris": "^0.10.0",
"hamcrest/hamcrest-php": "^2.0",
"johnkary/phpunit-speedtrap": "^3.1",
"justinrainbow/json-schema": "~5.2",
"mediawiki/mediawiki-codesniffer": "34.0.0",
"mediawiki/mediawiki-phan-config": "0.10.2",
"monolog/monolog": "~1.25.3",
"mediawiki/mediawiki-phan-config": "0.10.6",
"monolog/monolog": "~2.2.0",
"nikic/php-parser": "4.4.0",
"nmred/kafka-php": "0.1.5",
"php-parallel-lint/php-console-highlighter": "0.5",
"php-parallel-lint/php-parallel-lint": "1.2.0",
"phpunit/phpunit": "^8.5",
"pimple/pimple": "3.3.0",
"pimple/pimple": "3.3.1",
"psy/psysh": "0.10.4",
"seld/jsonlint": "1.7.1",
"seld/jsonlint": "1.8.3",
"symfony/yaml": "~3.4|~4.3|~5.0.5",
"wikimedia/avro": "1.9.0",
"wikimedia/testing-access-wrapper": "~2.0",
@ -107,7 +109,7 @@
"psr-0": {
"ComposerHookHandler": "includes/composer",
"ComposerVendorHtaccessCreator": "includes/composer",
"ComposerPhpunitXmlCoverageEdit":"includes/composer"
"ComposerPhpunitXmlCoverageEdit": "includes/composer"
}
},
"autoload-dev": {
@ -118,8 +120,11 @@
},
"scripts": {
"lint": "parallel-lint --exclude vendor",
"phan": "phan -d . --long-progress-bar",
"phpcs": "phpcs -p -s",
"fix": "phpcbf -p",
"fix": [
"phpcbf"
],
"pre-install-cmd": "ComposerHookHandler::onPreInstall",
"pre-update-cmd": "ComposerHookHandler::onPreUpdate",
"post-install-cmd": "ComposerVendorHtaccessCreator::onEvent",
@ -128,6 +133,10 @@
"composer lint",
"composer phpcs"
],
"test-some": [
"composer lint",
"composer phpcs"
],
"phpunit": "phpunit",
"phpunit:unit": "phpunit --colors=always --testsuite=core:unit,extensions:unit,skins:unit",
"phpunit:integration": "phpunit --colors=always --testsuite=core:integration,extensions:integration,skins:integration",

View File

@ -117,6 +117,31 @@ Then the extension will define a handler class:
}
}
## Service dependencies
The ObjectFactory specification in HookHandlers can contain a list of services
which should be instantiated and provided to the constructor or factory
function for the handler. For example:
"HookHandlers": {
"main": {
"class": "MediaWiki\\Extension\\FoodProcessor\\HookHandler",
"services": [ "ReadOnlyMode" ]
}
}
However, care should be taken with this feature. Some services have expensive
constructors, so requesting them when handling commonly-called hooks may damage
performance. Also, some services may not be safe to construct from within a hook
call.
The safest pattern for service injection is to use a separate handler for each
hook, and to inject only the services needed by that hook.
Calling a hook with the `noServices` option disables service injection. If a
handler for such a hook specifies services, an exception will be thrown when
the hook is called.
## Returning and aborting
If a hook handler returns false, HookContainer will stop iterating through the

View File

@ -586,6 +586,11 @@
"type": "boolean",
"description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
"default": false
},
"movable": {
"type": "boolean",
"description": "Whether it is possible to move pages in this namespace",
"default": true
}
},
"required": ["id", "constant", "name"]

View File

@ -614,6 +614,11 @@
"type": "boolean",
"description": "Whether the namespace is conditional upon configuration and should not be registered (requires separate registration via a hook)",
"default": false
},
"movable": {
"type": "boolean",
"description": "Whether it is possible to move pages in this namespace",
"default": true
}
},
"required": ["id", "constant", "name"]

View File

@ -15,6 +15,7 @@
"parallel-lint . --exclude vendor --exclude node_modules",
"phpcs -p -s",
"minus-x check ."
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -15,6 +15,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -0,0 +1,8 @@
{
"@metadata": {
"authors": [
"Teitei Para"
]
},
"cite_error": "Cite pâpa: $1"
}

View File

@ -1,10 +1,10 @@
{
"require-dev": {
"jakub-onderka/php-parallel-lint": "1.0.0",
"mediawiki/mediawiki-codesniffer": "30.0.0",
"jakub-onderka/php-console-highlighter": "0.4.0",
"mediawiki/minus-x": "1.0.0",
"mediawiki/mediawiki-phan-config": "0.9.1"
"mediawiki/mediawiki-codesniffer": "31.0.0",
"mediawiki/mediawiki-phan-config": "0.10.2",
"mediawiki/minus-x": "1.1.0",
"php-parallel-lint/php-console-highlighter": "0.5.0",
"php-parallel-lint/php-parallel-lint": "1.2.0"
},
"scripts": {
"test": [
@ -15,9 +15,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
},
"extra": {
"phan-taint-check-plugin": "2.0.1"
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -20,8 +20,9 @@
]
},
"Hooks": {
"SkinTemplateBuildNavUrlsNav_urlsAfterPermalink": "CiteThisPageHooks::onSkinTemplateBuildNavUrlsNav_urlsAfterPermalink",
"BaseTemplateToolbox": "CiteThisPageHooks::onBaseTemplateToolbox"
"SidebarBeforeOutput": [
"CiteThisPageHooks::onSidebarBeforeOutput"
]
},
"ResourceModules": {
"ext.citeThisPage": {

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"Kjeanclaude"
]
},
"citethispage-link": "Bo floua boué nga douman",
"tooltip-citethispage": "Floua boué nga i douman bolè atin i sou ndè"
}

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"Muskwatch"
]
},
"citethispage-link": "ka paaxicw ti umat t'ayc alh ti squlhanu tc",
"tooltip-citethispage": "alh7ays syas ka paaxicw ti umat t'ayc alh ti squlhanu tc"
}

View File

@ -13,5 +13,6 @@
"tooltip-citethispage": "Informace o tom, jak citovat tuto stránku",
"citethispage-change-submit": "Citovat",
"citethispage-change-target": "Stránka:",
"citethispage-badrevision": "Chyba: nepodařilo se najít žádnou revizi stránky „$1“ s ID $2.",
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Bibliografické detaily ke stránce {{FULLPAGENAME}} ==\n\n* Jméno stránky: {{FULLPAGENAME}}\n* Autor: Přispěvatelé {{grammar:2sg|{{SITENAME}}}}\n* Vydavatel: ''{{int:Sitesubtitle}}''.\n* Datum poslední úpravy: {{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}} UTC\n* Datum převzetí: <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}} UTC</citation>\n* Trvalý odkaz: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* Identifikace verze stránky: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Způsoby citace stránky {{FULLPAGENAME}} ==\n\n=== ISO 690-2 (1)===\nPřispěvatelé {{grammar:2sg|{{SITENAME}}}},'' {{FULLPAGENAME}}'' [online], {{int:sitesubtitle}}, c{{CURRENTYEAR}}, \nDatum poslední revize {{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}} UTC, \n[citováno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>]\n&lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; \n\n=== ISO 690-2 (2)===\n''{{int:sitesubtitle}}: {{FULLPAGENAME}}'' [online]. c{{CURRENTYEAR}} [citováno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>]. Dostupný z WWW: &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; \n\n=== [[APA standard|APA]] ===\n{{FULLPAGENAME}}. ({{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}). ''{{int:sitesubtitle}}''. Získáno <citation>{{CURRENTTIME}}, {{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation> z {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[MLA Style|MLA]] ===\n„{{FULLPAGENAME}}.“ ''{{int:sitesubtitle}}''. {{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[MHRA]] ===\nPřispěvatelé {{grammar:2sg|{{SITENAME}}}}, '{{FULLPAGENAME}}', ''{{int:sitesubtitle}},'' {{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [získáno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Chicago]] ===\nPřispěvatelé {{grammar:2sg|{{SITENAME}}}}, „{{FULLPAGENAME}},“ ''{{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (získáno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>).\n\n=== [[CBE/CSE]] ===\nPřispěvatelé {{grammar:2sg|{{SITENAME}}}}. {{FULLPAGENAME}} [Internet]. {{int:sitesubtitle}}; {{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>]. Dostupné na: \n{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook]] ===\n{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (naposledy navštíveno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>).\n\n=== [[BibTeX]] ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; navštíveno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>]\"\n }\n\nPři použití [[LaTeX]]ového balíčku url (někde na začátku dokumentu je uvedeno <code>\\usepackage{url}</code>), který o něco lépe formátuje webové adresy, můžete upřednostnit následující verzi:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; navštíveno <citation>{{CURRENTDAY}}.&nbsp;{{CURRENTMONTH}}.&nbsp;{{CURRENTYEAR}}</citation>]\"\n }\n\n</div> <!--closing div for \"plainlinks\"-->"
}

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"KATRINE1993"
]
},
"citethispage-link": "Citar esta pagina",
"tooltip-citethispage": "Información en cómo citar esta página"
}

View File

@ -5,6 +5,9 @@
"Pyscowicz"
]
},
"citethispage-link": "Viitetiot",
"tooltip-citethispage": "Tietoa tämän sivun refereenaamisesta"
"citethispage": "Viitetieot",
"citethispage-desc": "Lissää spesiaalisivun [[Special:CiteThisPage|viittauksille]] ja länkin työneuvoihin.",
"citethispage-link": "Viitetieot",
"tooltip-citethispage": "Tietoa tämän sivun refereenaamisesta",
"citethispage-change-target": "Sivu:"
}

View File

@ -4,13 +4,14 @@
"AndreasJS",
"Gts-tg",
"LeighvsOptimvsMaximvs",
"Omnipaedista"
"Omnipaedista",
"PastelKos"
]
},
"citethispage": "Μνημονεύειν",
"citethispage-desc": "Προσθέτει εἰδικὴν δἐλτον [[Special:Cite|ἀναφορῶν]] τινὰ καὶ σύνδεσμον τινὰ ἐν τῷ ἐργαλειοκάδῳ",
"citethispage-link": "Άναφέρειν τήνδε τὴν δέλτον",
"tooltip-citethispage": "Πληροφορίαι προς δέλτου παραπομπής",
"tooltip-citethispage": "Μηνύματα πρὸς δέλτου παραπομπής",
"citethispage-change-submit": "Μνημονεύειν",
"citethispage-change-target": "Δέλτος:"
}

View File

@ -15,5 +15,5 @@
"citethispage-change-submit": "Citiraj",
"citethispage-change-target": "Stranica:",
"citethispage-badrevision": "Grješka: izmjena stranice »$1« s ID-jem br. $2 nije pronađena.",
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Bibliografski detalji za stranicu {{FULLPAGENAME}} ==\n\n* Naziv stranice: {{FULLPAGENAME}} \n* Autori: Suradnici projekta {{SITENAME}} ({{SERVERNAME}})\n* Nakladnik: ''{{SITENAME}}, {{int:sitesubtitle}}''. \n* Nadnevak zadnjega uređivanja: {{REVISIONDAY}}. {{#timel:F|{{REVISIONMONTH1:R}}|hr}} {{REVISIONYEAR}}. {{#timel:(T)}}\n* Nadnevak preuzimanja: <citation>{{#timel: j. F Y. \"u\" H:i (T)| |hr}}</citation>\n* Trajna poveznica URL-a: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID inačice stranice: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Tipovi citiranja za stranicu {{FULLPAGENAME}} ==\n\n=== [[m:w:en:APA style|Tip ''APA'']] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Preuzeto <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> iz {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[m:w:en:The MLA style manual|Tip ''MLA'']] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[m:w:en:MHRA Style Guide|Tip ''MHRA'']] ===\nSuradnici projekta {{SITENAME}} ({{SERVERNAME}}), '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [pristupljeno <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[m:w:en:The Chicago Manual of Style|Tip ''Chicago'']] ===\nSuradnici projekta {{SITENAME}} ({{SERVERNAME}}), \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Pristupljeno <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[m:w:en:Council of Science Editors|Tip ''CBE/CSE'']] ===\nSuradnici projekta {{SITENAME}} ({{SERVERNAME}}). {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [citirano <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Dostupno na: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[m:w:en:Bluebook|Tip ''Bluebook'']] ===\n{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Posjećeno posljednji put <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== Unos za [[m:w:en:BibTeX|BibTeX]] ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{#timel:F||en}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nKada rabite URL-ove paketa [[m:w:en:LaTeX|LaTeX-a]] (<code>\\usepackage{url}</code> negdje u uvodu/zaglavlju/preambuli) koji nastoje dati osobite i prikladno formatirane adrese, sljedeće je možda bolje:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{#timel:F||en}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div><!--closing div for \"plainlinks\"-->"
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Bibliografski detalji za stranicu {{FULLPAGENAME}} ==\n\n* Naziv stranice: {{FULLPAGENAME}} \n* Autori: Suradnici projekta {{SITENAME}} ({{SERVERNAME}})\n* Nakladnik: ''{{SITENAME}}, {{int:sitesubtitle}}''. \n* Nadnevak zadnjega uređivanja: {{LOCALDAY}}. {{LOCALMONTHNAME}} {{LOCALYEAR}}. u {{LOCALTIME}} {{#timel:(T)}}\n* Nadnevak preuzimanja: <citation>{{#timel: j. F Y. \"u\" H:i (T)| |hr}}</citation>\n* Trajna poveznica URL-a: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID inačice stranice: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Tipovi citiranja za stranicu {{FULLPAGENAME}} ==\n\n=== [[m:w:en:APA style|Tip ''APA'']] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Preuzeto <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> iz {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[m:w:en:The MLA style manual|Tip ''MLA'']] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[m:w:en:MHRA Style Guide|Tip ''MHRA'']] ===\nSuradnici projekta {{SITENAME}} ({{SERVERNAME}}), '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [pristupljeno <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[m:w:en:The Chicago Manual of Style|Tip ''Chicago'']] ===\nSuradnici projekta {{SITENAME}} ({{SERVERNAME}}), \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Pristupljeno <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[m:w:en:Council of Science Editors|Tip ''CBE/CSE'']] ===\nSuradnici projekta {{SITENAME}} ({{SERVERNAME}}). {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [citirano <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Dostupno na: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[m:w:en:Bluebook|Tip ''Bluebook'']] ===\n{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (Posjećeno posljednji put <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== Unos za [[m:w:en:BibTeX|BibTeX]] ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{#timel:F||en}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nKada rabite URL-ove paketa [[m:w:en:LaTeX|LaTeX-a]] (<code>\\usepackage{url}</code> negdje u uvodu/zaglavlju/preambuli) koji nastoje dati osobite i prikladno formatirane adrese, sljedeće je možda bolje:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{#timel:F||en}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div><!--closing div for \"plainlinks\"-->"
}

View File

@ -1,8 +1,10 @@
{
"@metadata": {
"authors": [
"Diki Ananta",
"Meursault2004",
"NoiX180"
"NoiX180",
"Sumbukompor"
]
},
"citethispage": "Sitir Kaca Iki",
@ -11,5 +13,5 @@
"tooltip-citethispage": "Katerangan bab carané nyitir kaca iki",
"citethispage-change-submit": "Sitir",
"citethispage-change-target": "Kaca:",
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Rerincèning kapustakan tumrap {{FULLPAGENAME}} ==\n\n* Jeneng kaca: {{FULLPAGENAME}}\n* Panganggit: {{SITENAME}} kontributor\n* Panyithak: ''{{SITENAME}}, {{int:sitesubtitle}}''.\n* Tanggal rèvisi pungkasan: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC\n* Tanggal njupuk: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>\n* URL permanèn: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID Vèrsi Kaca: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Gagrag sitiran tumrap {{FULLPAGENAME}} ==\n\n=== [[APA style|Gagrag APA]] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Dijupuk <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> saka {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[The MLA style manual|Gagrag MLA]] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[MHRA Style Guide|Gagrag MHRA]] ===\n{{SITENAME}} kontributor, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [diaksès <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Gagrag Chicago]] ===\n{{SITENAME}} kontributor, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (diaksès <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>).\n\n=== [[Council of Science Editors|Gagrag CBE/CSE]] ===\n{{SITENAME}} kontributor. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [dikutip <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Sumadhiya saka:\n{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook|Gagrag Bluebook]] ===\n{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (ditekani pungkasan <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>).\n\n=== Isi [[BibTeX]] ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; diaksès <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nYèn nganggo url pakèt [[LaTeX]] (<code>\\usepackage{url}</code> ngendi waé nèng pambuka) sing bakal ndadèkaké alamat wèb sing dipormat dadi luwih èndah, sing ngisor iki disaranaké:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; diaksès <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div> <!--closing div for \"plainlinks\"-->"
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Rerincèning kapustakan tumrap {{FULLPAGENAME}} ==\n\n* Jeneng kaca: {{FULLPAGENAME}}\n* Panganggit: {{SITENAME}} kontributor\n* Panyithak: ''{{SITENAME}}, {{int:sitesubtitle}}''.\n* Tanggal révisi pungkasan: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC\n* Tanggal njupuk: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>\n* URL permanèn: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID Vèrsi Kaca: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Gagrag sitiran tumrap {{FULLPAGENAME}} ==\n\n=== [[APA style|Gagrag APA]] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Dijupuk <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> saka {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[The MLA style manual|Gagrag MLA]] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[MHRA Style Guide|Gagrag MHRA]] ===\n{{SITENAME}} kontributor, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [diaksès <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Gagrag Chicago]] ===\n{{SITENAME}} kontributor, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (diaksès <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>).\n\n=== [[Council of Science Editors|Gagrag CBE/CSE]] ===\n{{SITENAME}} kontributor. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [dikutip <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Sumadhiya saka:\n{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook|Gagrag Bluebook]] ===\n{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (ditekani pungkasan <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>).\n\n=== Isi [[BibTeX]] ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; diaksès <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nYèn nganggo url pakèt [[LaTeX]] (<code>\\usepackage{url}</code> ngendi waé nèng pambuka) sing bakal ndadèkaké alamat wèb sing dipormat dadi luwih èndah, sing ngisor iki disaranaké:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; diaksès <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div> <!--closing div for \"plainlinks\"-->"
}

View File

@ -1,9 +1,10 @@
{
"@metadata": {
"authors": [
"Belkacem77"
"Belkacem77",
"YouvaDjouadi"
]
},
"citethispage-link": "Bder-d asebter-agi",
"tooltip-citethispage": "Talɣut ɣef wamek ara d-bedreḍ asebter-agi"
"citethispage-link": "Bder-d asebter-a",
"tooltip-citethispage": "Isallen ɣef wamek i tzemreḍ ad d-tbedreḍ asebter-a"
}

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"Teitei Para"
]
},
"citethispage-link": "He châhmia he reihpachhuah",
"tooltip-citethispage": "Kheita he châhmia he reipachhuahpa a châ aw tahpa chô liata thâtih"
}

View File

@ -9,5 +9,5 @@
"citethispage": "Titēnōtzaz",
"citethispage-link": "Tlahtoa itech inin tlahcuilolamatl",
"citethispage-change-submit": "Titēnōtzaz",
"citethispage-change-target": "Zāzanilli:"
"citethispage-change-target": "Tlahcuilolamatl:"
}

View File

@ -5,7 +5,7 @@
]
},
"citethispage": "Citeerhülpe",
"citethispage-desc": "Voogt een [[Special:CiteThisPage|speciale syde]] to üm te citeren, en een verwysing dernå in et warktügenmenü",
"citethispage-desc": "Voogt en [[Special:CiteThisPage|speciale syde]] to üm to citeren, en en verwysing dernå in et warktügenmenü",
"citethispage-link": "Disse syde citeren",
"tooltip-citethispage": "Informaty oaver ho jy disse syde citeren künt",
"citethispage-change-submit": "Citeren",

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,7 @@
{
"@metadata": {
"authors": [
"Abdullahi",
"Abshirdheere"
]
},
@ -10,5 +11,5 @@
"tooltip-citethispage": "Macluumaad ku saabsan habka soo xigashada ee bogga",
"citethispage-change-submit": "Soo xigasho",
"citethispage-change-target": "Bogga:",
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Faahfaahin ku saabsan raadraaca ee {{FULLPAGENAME}} ==\n\n* Magaca bogga: {{FULLPAGENAME}}\n* Qoraha: {{SITENAME}} contributors\n* Faafiyaha: ''{{SITENAME}}, {{int:sitesubtitle}}''.\n* Date of last revision: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC\n* Tariikhdii ugu dambaysay ee dib u eegista: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>\n* URL joogta ah: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID nuqulka bogga: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Citation styles for {{FULLPAGENAME}} ==\n\n=== [[Hannaanka xigashada]] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[The MLA style manual|MLA style]] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[MHRA Style Guide|MHRA style]] ===\n{{SITENAME}} contributors, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Chicago style]] ===\n{{SITENAME}} contributors, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[Council of Science Editors|CBE/CSE style]] ===\n{{SITENAME}} contributors. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Available from:\n{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook|Bluebook style]] ===\n{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (last visited <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[BibTeX]] entry ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n Fiira gaar ah = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nMarkaad adeegsanayso [[LaTeX]] package url (<code>\\usepackage{url}</code> meel kastaba) kaasoo samayn kara siinta canaawiin web lagu kabay si wanaagsan, kan xiga waxaa laga yaabaa in uu ka wanaagsanaado:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n Fiira gaar ah = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div> <!--closing div for \"plainlinks\"-->"
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Faahfaahinta buug-ahaaneed ee {{FULLPAGENAME}} ==\n\n* Magaca Bogga: {{FULLPAGENAME}}\n* Qoraa: {{SITENAME}} contributors\n* soo bandhigaha: ''{{SITENAME}}, {{int:sitesubtitle}}''.\n* Taariikhda dib u eegista ugu danbeesay: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC\n* Taariikhda soo celinta: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>\n* Permanent URL: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* Nooca Aqoonsiga bogga: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Qaabka Xigashooyinka ee {{FULLPAGENAME}} ==\n\n=== [[Qaabka APA]] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Retrieved <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> from {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Qaabka buuga MLA l|Qaabka MLA ]] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[Hagaha Qaabka MHRA|Qaabka MHRA]] ===\n{{SITENAME}} ku darsadeyaasha, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [accessed <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Chicago style]] ===\n{{SITENAME}} contributors, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accessed <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[Tifatirayaasha Golaha Sayniska|CBE/CSE style]] ===\n{{SITENAME}} ku darsadeyaasha. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [cited <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Laga heli karaa:\n{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook|Qaabka Bluebook]] ===\n{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (booqashadii ugu dambeysay <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[BibTeX]] gelid ===\n\n @misc{ wiki:xxx,\n Qoraa = \"{{SITENAME}}\",\n cinwaanka = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n sanadka = \"{{CURRENTYEAR}}\",\n url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n ogaaw = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nMarkii aad isticmaaleesid [[LaTeX]] xiramada url (<code>\\usepackage{url}</code> meel ku taal hordhaca) oo had iyo jeer bixisa cinwaanno website badan oo qaabeysan, qaabkan soosocda ayaa la quman:\n\n @misc{ wiki:xxx,\n qoraa = \"{{SITENAME}}\",\n cinwaanka = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n sanadka = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n ogaaw = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div> <!--closing div for \"plainlinks\"-->"
}

View File

@ -12,12 +12,12 @@
"Михајло Анђелковић"
]
},
"citethispage": "Цитирање ове странице",
"citethispage-desc": "Додаје посебну страницу за [[Special:CiteThisPage|цитирање]] и везу у траци са алаткама",
"citethispage-link": "Цитирање ове странице",
"citethispage": "Цитирање странице",
"citethispage-desc": "Додаје посебну страницу за [[Special:CiteThisPage|цитирање]] и линк у кутијици „Алатке”",
"citethispage-link": "Цитирајте чланак",
"tooltip-citethispage": "Информације о томе како цитирати ову страницу",
"citethispage-change-submit": "Цитирај",
"citethispage-change-target": "Страница:",
"citethispage-badrevision": "Грешка: није било могуће наћи измену за страницу „$1” са ID-ом $2.",
"citethispage-badrevision": "Грешка: Није могуће пронаћи измену странице „$1” с ID-јем $2.",
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Библиографски детаљи за страну {{FULLPAGENAME}} ==\n\n* Назив стране: {{FULLPAGENAME}} \n* Аутор: Сарадници на сајту {{SITENAME}}\n* Издавач: ''{{SITENAME}}, {{int:sitesubtitle}}''. \n* Датум последње измене: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC\n* Датум узимања: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>\n* Стални URL: {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID верзије стране: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Стилови цитирања за страну {{FULLPAGENAME}} ==\n\n=== [[APA style|APA стил]] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Узето <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> од {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[The MLA style manual|MLA стил]] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[MHRA Style Guide|MHRA стил]] ===\nВикипедијини корисници, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [приступљено <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Чикаго стил]] ===\nВикипедијини корисници, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (приступљено <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[Council of Science Editors|CBE/CSE стил]] ===\nВикипедијини корисници. {{FULLPAGENAME}} [Интернет]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [цитирано <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Доступно са: \n{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook|Bluebook стил]] ===\n{{FULLPAGENAME}}, {{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (последња посета <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[BibTeX]] унос ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nКада користите [[LaTeX]] пакет url (<code>\\usepackage{url}</code> негде у преамбули) који тежи да да далеко лепше форматирану адресу, следеће је можда боље:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{fullurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; accessed <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div> <!--closing div for \"plainlinks\"-->"
}

View File

@ -7,11 +7,11 @@
"GatoSelvadego"
]
},
"citethispage": "Citazion",
"citethispage": "Çitasion",
"citethispage-desc": "Zonta na pagina speciale par le [[Special:Cite|citazion]] e un colegamento nei strumenti",
"citethispage-link": "Çita sta pajina",
"tooltip-citethispage": "Informasion so come çitar sta pagina",
"citethispage-change-submit": "Crea la citazion",
"citethispage-change-submit": "Crea ła çitasion",
"citethispage-change-target": "Pagina da citar:",
"citethispage-content": "__NOTOC__\n<div class=\"mw-specialCiteThisPage-bibliographic\">\n\n== Detaji bibliografisi par {{FULLPAGENAME}} ==\n\n* Tìtoƚo pàgina: {{FULLPAGENAME}}\n* Autor: contributori {{SITENAME}}\n* Editor: ''{{SITENAME}}, {{int:sitesubtitle}}''.\n* Data de l'ultema modifega: {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC\n* Data estrasion: <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} {{CURRENTTIME}} UTC</citation>\n* URL permanente: {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\n* ID version pàgina: {{REVISIONID}}\n\n</div>\n<div class=\"plainlinks mw-specialCiteThisPage-styles\">\n\n== Stiƚi citasion par {{FULLPAGENAME}} ==\n\n=== [[APA style|Stiƚe APA]] ===\n{{FULLPAGENAME}}. ({{CURRENTYEAR}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}). ''{{SITENAME}}, {{int:sitesubtitle}}''. Estrato el <citation>{{CURRENTTIME}}, {{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation> da {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[The MLA style manual|Stiƚe MLA]] ===\n\"{{FULLPAGENAME}}.\" ''{{SITENAME}}, {{int:sitesubtitle}}''. {{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC. <citation>{{CURRENTDAY}} {{CURRENTMONTHABBREV}} {{CURRENTYEAR}}, {{CURRENTTIME}}</citation> &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt;.\n\n=== [[MHRA Style Guide|Stiłe MHRA]] ===\nContributori {{SITENAME}}, '{{FULLPAGENAME}}', ''{{SITENAME}}, {{int:sitesubtitle}},'' {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, {{CURRENTTIME}} UTC, &lt;{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}&gt; [accesso il <citation>{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</citation>]\n\n=== [[The Chicago Manual of Style|Stiłe Chicago]] ===\nContributori {{SITENAME}}, \"{{FULLPAGENAME}},\" ''{{SITENAME}}, {{int:sitesubtitle}},'' {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (accesso il <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[Council of Science Editors|Stiłe CBE/CSE]] ===\nContributori {{SITENAME}}. {{FULLPAGENAME}} [Internet]. {{SITENAME}}, {{int:sitesubtitle}}; {{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}, {{CURRENTTIME}} UTC [citato il <citation>{{CURRENTYEAR}} {{CURRENTMONTHABBREV}} {{CURRENTDAY}}</citation>]. Disponibile so:\n{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}.\n\n=== [[Bluebook|Stiłe Bluebook]] ===\n{{FULLPAGENAME}}, {{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}} (ultima visita il <citation>{{CURRENTMONTHNAME}} {{CURRENTDAY}}, {{CURRENTYEAR}}</citation>).\n\n=== [[BibTeX]] entry ===\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}\",\n note = \"[Online; accesso il <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\nCuando che se dopara el pacheto [[LaTeX]] par url (<code>\\usepackage{url}</code> da calche parte inte'l preanboło) che in xenere el da indirisi web formatai in modo mejor, xe preferibiłe doparar el seguente còdexe:\n\n @misc{ wiki:xxx,\n author = \"{{SITENAME}}\",\n title = \"{{FULLPAGENAME}} --- {{SITENAME}}{,} {{int:sitesubtitle}}\",\n year = \"{{CURRENTYEAR}}\",\n url = \"'''\\url{'''{{canonicalurl:{{FULLPAGENAME}}|oldid={{REVISIONID}}}}'''}'''\",\n note = \"[Online; accesso el <citation>{{CURRENTDAY}}-{{CURRENTMONTHNAME}}-{{CURRENTYEAR}}</citation>]\"\n }\n\n\n</div> <!--closing div for \"plainlinks\"-->"
}

View File

@ -0,0 +1,9 @@
{
"@metadata": {
"authors": [
"Nkankane"
]
},
"citethispage-link": "Caphuna kuleli khasi",
"tooltip-citethispage": "Imininingwane mayelana nokucaphuna leli khasi"
}

View File

@ -1,35 +1,6 @@
<?php
class CiteThisPageHooks {
/**
* @param SkinTemplate &$skintemplate
* @param array &$nav_urls
* @param int &$oldid
* @param int &$revid
* @return bool
*/
public static function onSkinTemplateBuildNavUrlsNav_urlsAfterPermalink(
&$skintemplate, &$nav_urls, &$oldid, &$revid
) {
// check whether were in the right namespace, the $revid has the correct type and is not empty
// (which would mean that the current page doesnt exist)
$title = $skintemplate->getTitle();
if ( self::shouldAddLink( $title ) && $revid !== 0 && !empty( $revid ) ) {
$nav_urls['citethispage'] = [
'text' => $skintemplate->msg( 'citethispage-link' )->text(),
'href' => SpecialPage::getTitleFor( 'CiteThisPage' )
->getLocalURL( [ 'page' => $title->getPrefixedDBkey(), 'id' => $revid,
'wpFormIdentifier' => 'titleform' ] ),
'id' => 't-cite',
# Used message keys: 'tooltip-citethispage', 'accesskey-citethispage'
'single-id' => 'citethispage',
];
}
return true;
}
/**
* Checks, if the "cite this page" link should be added. By default the link is added to all
* pages in the main namespace, and additionally to pages, which are in one of the namespaces
@ -49,15 +20,41 @@ class CiteThisPageHooks {
}
/**
* @param BaseTemplate $baseTemplate
* @param array &$toolbox
* @return bool
* @param Skin $skin
* @param string[] &$sidebar
* @return void
*/
public static function onBaseTemplateToolbox( BaseTemplate $baseTemplate, array &$toolbox ) {
if ( isset( $baseTemplate->data['nav_urls']['citethispage'] ) ) {
$toolbox['citethispage'] = $baseTemplate->data['nav_urls']['citethispage'];
public static function onSidebarBeforeOutput( Skin $skin, array &$sidebar ): void {
$out = $skin->getOutput();
$title = $out->getTitle();
if ( !self::shouldAddLink( $title ) ) {
return;
}
return true;
$revid = $out->getRevisionId();
if ( $revid === 0 || empty( $revid ) ) {
return;
}
$specialPage = SpecialPage::getTitleFor( 'CiteThisPage' );
$citeURL = $specialPage->getLocalURL( [
'page' => $title->getPrefixedDBkey(),
'id' => $revid,
'wpFormIdentifier' => 'titleform'
]
);
$citeThisPageLink = [
'id' => 't-cite',
'href' => $citeURL,
'text' => $skin->msg( 'citethispage-link' )->text(),
// Message keys: 'tooltip-citethispage', 'accesskey-citethispage'
'single-id' => 'citethispage',
];
// Append link
$sidebar['TOOLBOX']['citethispage'] = $citeThisPageLink;
}
}

View File

@ -15,6 +15,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -15,6 +15,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -1,10 +1,10 @@
{
"require-dev": {
"jakub-onderka/php-parallel-lint": "1.0.0",
"jakub-onderka/php-console-highlighter": "0.4.0",
"mediawiki/mediawiki-codesniffer": "30.0.0",
"mediawiki/minus-x": "1.0.0",
"mediawiki/mediawiki-phan-config": "0.9.1"
"mediawiki/mediawiki-codesniffer": "31.0.0",
"mediawiki/mediawiki-phan-config": "0.10.2",
"mediawiki/minus-x": "1.1.0",
"php-parallel-lint/php-console-highlighter": "0.5.0",
"php-parallel-lint/php-parallel-lint": "1.2.0"
},
"scripts": {
"fix": [
@ -15,9 +15,7 @@
"parallel-lint . --exclude node_modules --exclude vendor",
"phpcs -p -s",
"minus-x check ."
]
},
"extra": {
"phan-taint-check-plugin": "2.0.1"
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -58,5 +58,5 @@
"InputBoxHooks::onSpecialPageBeforeExecute"
]
},
"manifest_version": 1
"manifest_version": 2
}

View File

@ -2,6 +2,7 @@
"@metadata": {
"authors": [
"Cekli829",
"Toghrul Rahimli",
"Vugar 1981",
"Wertuose"
]
@ -9,5 +10,7 @@
"inputbox-tryexact": "Dəqiq uyğunluq",
"inputbox-searchfulltext": "Yaxşı mətni axtar",
"inputbox-createarticle": "Məqalə yarat",
"inputbox-postcomment": "Yeni bölmə",
"inputbox-postcommenttitle": "Yeni bölmə",
"inputbox-ns-main": "Əsas"
}

View File

@ -2,22 +2,24 @@
"@metadata": {
"authors": [
"Albamhandae",
"Ellif",
"Keysuck",
"Klutzy",
"Kwj2772",
"Revi",
"ToePeu",
"Ykhwong",
"아라"
]
},
"inputbox-desc": "사전 정의된 HTML 양식을 포함할 수 있습니다",
"inputbox-error-no-type": "만드려는 입력 상자의 종류를 지정하지 않았습니다.",
"inputbox-error-bad-type": "\"$1\" 입력 상자 종류는 정의되어 있지 않습니다.\n\"create\", \"comment\", \"search\", \"search2\"나 \"fulltext\" 중 하나를 지정하세요.",
"inputbox-desc": "사전 정의된 HTML 양식의 포함을 허용",
"inputbox-error-no-type": "만들려는 입력 상자의 유형을 지정하지 않았습니다.",
"inputbox-error-bad-type": "\"$1\" 입력 상자 유형이 정의되어 있지 않습니다.\n\"create\", \"comment\", \"search\", \"search2\"나 \"fulltext\" 중 하나를 지정하세요.",
"inputbox-tryexact": "일치하는 항목 찾기",
"inputbox-searchfulltext": "전체 글 검색",
"inputbox-createarticle": "문서 만들기",
"inputbox-movearticle": "문서 이동",
"inputbox-postcomment": "새 문단",
"inputbox-postcommenttitle": "새 문단",
"inputbox-ns-main": "문서"
"inputbox-ns-main": "일반"
}

View File

@ -1,6 +1,9 @@
{
"@metadata": {
"authors": []
"authors": [
"Bikarhêner"
]
},
"inputbox-tryexact": "Lêhatinên herfiyen eynî biceribîne",
"inputbox-createarticle": "Gotarê biafirîne"
}

View File

@ -0,0 +1,8 @@
{
"@metadata": {
"authors": [
"Starladin"
]
},
"inputbox-tryexact": "Chir la corespondënza avisa"
}

View File

@ -1,10 +1,10 @@
{
"require-dev": {
"jakub-onderka/php-parallel-lint": "1.0.0",
"mediawiki/mediawiki-codesniffer": "30.0.0",
"jakub-onderka/php-console-highlighter": "0.4.0",
"mediawiki/minus-x": "1.0.0",
"mediawiki/mediawiki-phan-config": "0.9.1"
"mediawiki/mediawiki-codesniffer": "31.0.0",
"mediawiki/mediawiki-phan-config": "0.10.2",
"mediawiki/minus-x": "1.1.0",
"php-parallel-lint/php-console-highlighter": "0.5.0",
"php-parallel-lint/php-parallel-lint": "1.2.0"
},
"scripts": {
"fix": [
@ -15,9 +15,7 @@
"parallel-lint . --exclude vendor --exclude node_modules",
"phpcs -p -s",
"minus-x check ."
]
},
"extra": {
"phan-taint-check-plugin": "2.0.1"
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -18,15 +18,21 @@
"license-name": "GPL-2.0-or-later",
"type": "specialpage",
"requires": {
"MediaWiki": ">= 1.28.0"
"MediaWiki": ">= 1.29.0"
},
"ExtensionMessagesFiles": {
"InterwikiAlias": "Interwiki.alias.php"
},
"config": {
"InterwikiCentralDB": null,
"InterwikiCentralInterlanguageDB": null,
"InterwikiViewOnly": false
"InterwikiCentralDB": {
"value": null
},
"InterwikiCentralInterlanguageDB": {
"value": null
},
"InterwikiViewOnly": {
"value": false
}
},
"MessagesDirs": {
"Interwiki": [
@ -60,5 +66,5 @@
"LogActionsHandlers": {
"interwiki/*": "InterwikiLogFormatter"
},
"manifest_version": 1
"manifest_version": 2
}

View File

@ -4,13 +4,14 @@
"EugeneZelenko",
"Jim-by",
"Red Winged Duck",
"Renessaince",
"Wizardist"
]
},
"interwiki": "Прагляд і рэдагаваньне зьвестак пра інтэрвікі",
"interwiki-title-norights": "Прагляд зьвестак пра інтэрвікі",
"interwiki-desc": "Дадае [[Special:Interwiki|службовую старонку]] для прагляду і рэдагаваньня табліцы інтэрвікі.",
"interwiki_intro": "Гэта агляд табліцы інтэрвікі, якая вызначае прэфіксы для выкарыстаньня ў кароткіх спасылках на розныя вікі і іншыя вонкавыя сайты. Дзеля рэкамэндацыяў у выкарыстаньні, калі ласка, глядзіце [//www.mediawiki.org/wiki/Extension:Interwiki інструкцыю на MediaWiki.org].",
"interwiki_intro": "Гэта агляд табліцы інтэрвікі, якая вызначае прэфіксы для выкарыстаньня ў кароткіх спасылках на розныя вікі і іншыя вонкавыя сайты. Дзеля рэкамэндацыяў у выкарыстаньні, калі ласка, глядзіце [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki інструкцыю на MediaWiki.org].",
"interwiki-legend-label": "Легенда",
"interwiki_prefix": "Прэфікс",
"interwiki-prefix-label": "Прэфікс:",
@ -22,7 +23,7 @@
"interwiki_local_1_intro": "Вонкавыя HTTP-запыты да лякальнай вікі з гэтым інтэрвікі-прэфіксам будуць перанакіраваныя на мэтавы URL-адрас з інтэрвікі (разглядаюцца як спасылкі на лякальныя старонкі).",
"interwiki_trans": "Трансклюзія",
"interwiki-trans-label": "Трансклюзія",
"interwiki_trans_1_intro": "Калі выкарыстоўваецца сынтаксыс <code>{<nowiki />{прэфікс:<em>назва старонкі</em>}}</code>, дазваляецца ўключэньне шаблёнаў/старонак зь іншых вікі, калі інтэрвікі-ўключэньні дазволеныя ў ([//www.mediawiki.org/wiki/Manual:$wgEnableScaryTranscluding жудасных уключэньнях]).",
"interwiki_trans_1_intro": "Калі выкарыстоўваецца сынтаксыс <code>{<nowiki />{прэфікс:<em>назва старонкі</em>}}</code>, дазваляецца ўключэньне шаблёнаў/старонак зь іншых вікі, калі інтэрвікі-ўключэньні дазволеныя ў ([https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgEnableScaryTranscluding жудасных уключэньнях]).",
"interwiki_trans_0_intro": "Не дазваляе <code>{<nowiki />{прэфікс:<em>назва старонкі</em>}}</code> уключаць шаблёны ці старонкі зь іншых сайтаў, пры гэтым шукае лякальную старонку ў прасторы назваў шаблёнаў.",
"interwiki_1": "так",
"interwiki_0": "не",

View File

@ -1,10 +1,12 @@
{
"@metadata": {
"authors": [
"Artsiom91",
"Тест",
"Чаховіч Уладзіслаў"
]
},
"interwiki-title-norights": "Прагляд звестак пра інтэрвікі",
"interwiki_reasonfield": "Прычына:",
"interwiki_addbutton": "Дадаць"
}

View File

@ -10,7 +10,7 @@
"interwiki": "Преглед и управление на междууикитата",
"interwiki-title-norights": "Преглед на данните за междууикита",
"interwiki-desc": "Добавя [[Special:Interwiki|специална страница]] за преглед и управление на таблицата с междууикита",
"interwiki_intro": "Това е общ преглед на таблицата с междууикита, което дефинира кратките представки, използвани като бързи връзки към различни уикита и други външни уеб сайтове. За препоръчаната употреба, вижте [//www.mediawiki.org/wiki/Extension:Interwiki ръководството на MediaWiki.org].",
"interwiki_intro": "Това е общ преглед на таблицата с междууикита, което дефинира кратките представки, използвани като бързи връзки към различни уикита и други външни уеб сайтове. За препоръчаната употреба, вижте [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki ръководството на MediaWiki.org].",
"interwiki-legend-label": "Легенда",
"interwiki_prefix": "Представка",
"interwiki-prefix-label": "Представка:",

View File

@ -17,7 +17,7 @@
"interwiki_local": "ДӀасхьажор",
"interwiki-local-label": "ДӀасхьажор:",
"interwiki_local_0_intro": "магийна яц, хаамо блоктуху «агӀо цакарий»",
"interwiki_local_1_intro": "Арахьара HTTP-дехарш локальни викиш тӀе хӀара юкъаравики-префикс лела еш URL-адрес чохь тӀе хьажа йо URL-адрес юкъаравики-хьаоргаш (локальни агӀонийн тӀе йолу хьажоргаш санна кеч йо).",
"interwiki_local_1_intro": "Арахьара HTTP-дехарш локалан викиш тӀе хӀара юкъаравики-префикс лела еш URL-адрес чохь тӀе хьажа йо URL-адрес юкъаравики-хьажоргаш (локалан агӀонийн тӀе йолу хьажоргаш санна кеч йо).",
"interwiki_trans": "Юкъатохар",
"interwiki-trans-label": "Юкъатохар:",
"interwiki_trans_1_intro": "Кхечу вики чура юкъарвикеш чуяха йиш хуьлуьйту хӀокху вики чохь магийна делахь.",

View File

@ -3,11 +3,13 @@
"authors": [
"Ahdan",
"Bennylin",
"Diki Ananta",
"Farras",
"Irwangatot",
"IvanLanin",
"Kenrick95",
"Rex"
"Rex",
"Sumbukompor"
]
},
"interwiki": "Lihat dan sunting data interwiki",
@ -19,11 +21,11 @@
"interwiki_prefix_intro": "Interwiki prefix akan digunakan dalam <code>[<nowiki />[prefix:<em>pagename</em>]]</code> sintak teksWiki",
"interwiki_url_intro": "Template untuk URL. Tempat $1 akan digantikan oleh <em>judul</em> dari teksWiki, ketika sintaks teksWiki tersebut di atas digunakan.",
"interwiki_local": "Meneruskan",
"interwiki-local-label": "Meneruskan:",
"interwiki-local-label": "Meneruskan",
"interwiki_local_0_intro": "tidak dihormati, biasanya diblokir oleh \"halaman tidak ditemukan\",",
"interwiki_local_1_intro": "pengalihan ke URL target akan meberikan definis pranala interwiki (contoh. seperti referensi di halaman lokal)",
"interwiki_trans": "Transklusi",
"interwiki-trans-label": "Mentransklusikan:",
"interwiki-trans-label": "Mentransklusikan",
"interwiki_trans_1_intro": "memperbolehkan transklusi dari wiki lain, jika transklusi interwiki diizinkan di wiki ini,",
"interwiki_trans_0_intro": "tidak mengizinkan hal itu, lebih baik mencari halaman pada ruang nama templat.",
"interwiki_1": "ya",
@ -33,17 +35,17 @@
"interwiki_edit": "Sunting",
"interwiki_reasonfield": "Alasan:",
"interwiki_deleting": "Anda menghapus prefiks \"$1\".",
"interwiki_deleted": "Prefiks \"$1\" berhasil dihapus dari tabel interwiki.",
"interwiki_deleted": "Prefiks \"$1\" dihapus dari tabel interwiki.",
"interwiki_delfailed": "Prefiks \"$1\" tidak dapat dihapuskan dari tabel interwiki.",
"interwiki-logtext": "Lihat log",
"interwiki_addtext": "Menambahkan sebuah prefiks interwiki",
"interwiki_addtext": "Menambahkan sebuah prefiks interwiki atau bahasa",
"interwiki_addintro": "Anda akan menambahkan sebuah prefiks interwiki.\nIngat bahwa prefiks tidak boleh mengandung tanda spasi ( ), titik dua (:), lambang dan (&), atau tanda sama dengan (=).",
"interwiki_addbutton": "Tambahkan",
"interwiki_added": "Prefiks \"$1\" berhasil ditambahkan ke tabel interwiki.",
"interwiki_added": "Prefiks \"$1\" ditambahkan ke tabel interwiki.",
"interwiki_addfailed": "Prefiks \"$1\" tidak dapat ditambahkan ke tabel interwiki. Kemungkinan dikarenakan prefiks ini telah ada di tabel interwiki.",
"interwiki_edittext": "Menyunting sebuah prefiks interwiki",
"interwiki_editintro": "Anda sedang menyunting sebuah prefiks interwiki.\nIngat bahwa tindakan ini dapat mempengaruhi pranala yang telah eksis.",
"interwiki_edited": "Prefiks \"$1\" berhasil diubah di tabel interwiki.",
"interwiki_edited": "Prefiks \"$1\" diubah di tabel interwiki.",
"interwiki_editerror": "Prefiks \"$1\" tidak dapat diubah di tabel interwiki.\nKemungkinan karena prefiks ini tidak ada.",
"interwiki-badprefix": "Ditentukan interwiki awalan \"$1\" mengandung karakter yang tidak sah",
"interwiki-submit-empty": "Prefiks dan URL tidak boleh kosong.",

View File

@ -10,6 +10,7 @@
"Omotecho",
"Schu",
"Shirayuki",
"Siglite3",
"Sujiniku",
"Yusuke1109",
"青子守歌"
@ -22,13 +23,13 @@
"interwiki-legend-label": "凡例",
"interwiki_prefix": "接頭辞",
"interwiki-prefix-label": "接頭辞:",
"interwiki_prefix_intro": "<code>[<nowiki />[接頭辞:<em>ページ名</em>]]</code> というウィキテキストの構文で使用される、インターウィキ接頭辞です。",
"interwiki_url_intro": "URLの雛型です。$1 というプレースホルダーは、<code>[<nowiki />[接頭辞:<em>ページ名</em>]]</code>における「<em>ページ名</em>」に置換されます。",
"interwiki_prefix_intro": "接頭辞はウィキテキストの構文において <code>[<nowiki />[接頭辞:<em>ページ名</em>]]</code> という形で使用されます。",
"interwiki_url_intro": "URL のひな形を定義します。プレースホルダー $1 は <code>[<nowiki />[接頭辞:<em>ページ名</em>]]</code> の「<em>ページ名</em>」に置換されます。",
"interwiki_local": "転送",
"interwiki-local-label": "転送",
"interwiki_local_0_intro": "そのURLでインターウィキ プリフィックスを使用しているローカルウィキへの、外部HTTP要求の結果は「{{int:badtitle}}」のエラーページです。",
"interwiki_local_1_intro": "このインターウィキ プリフィックスを使用しているローカルウィキへの外部HTTP要求が、転送をして、インターウィキの対象URLに転送されます。(言い換えると、同一ウィキ内のページへのリンクのように扱います。)",
"interwiki_trans": "トランスクルージョン",
"interwiki_local_0_intro": "外部からの HTTP リクエストの URL にインターウィキ接頭辞が使われている場合、「{{int:badtitle}}」のエラーページに到達するでしょう。",
"interwiki_local_1_intro": "外部からの HTTP リクエストにインターウィキ接頭辞が使われている場合、インターウィキの対象 URL にリダイレクトされます(すなわち、ローカルページのリンクのように扱われます)。",
"interwiki_trans": "参照読み込み",
"interwiki-trans-label": "参照読み込み",
"interwiki_trans_1_intro": "<code>{<nowiki />{接頭辞:<em>ページ名</em>}}</code> というWiki構文が使われた場合、ウィキ間トランスクルージョンがこのウィキで一般的に ([https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgEnableScaryTranscluding scary transclusion]) 許可されている場合は、この外部ウィキからのテンプレートまたはページのトランスクルージョンを許可します。",
"interwiki_trans_0_intro": "<code>{<nowiki />{prefix:<em>pagename</em>}}</code> として外部のテンプレート/ページを参照読み込みすることを許可せず、テンプレート名前空間でページを探します。",
@ -40,10 +41,12 @@
"interwiki_reasonfield": "理由:",
"interwiki_deleting": "接頭辞「$1」を削除しようとしています。",
"interwiki_deleted": "インターウィキテーブルから接頭辞「$1」を除去しました。",
"interwiki_delfailed": "インターウィキテーブルから接頭辞「$1」を除去しました。",
"interwiki_delfailed": "インターウィキテーブルから接頭辞「$1」を除去できませんでした。",
"interwiki-logtext": "記録を閲覧",
"interwiki_addtext": "インターウィキ接頭辞または言語接頭辞を追加",
"interwiki-addtext-local": "ローカルのインターウィキ接頭辞または言語接頭辞を追加",
"interwiki-addtext-nolang": "インターウィキ接頭辞を追加",
"interwiki-addtext-local-nolang": "ローカルのインターウィキ接頭辞を追加",
"interwiki_addintro": "インターウィキの新しい接頭辞を追加しようとしています。\n接頭辞には空白( )、コロン(:)、アンパーサンド(&)、等号(=)を含めてはいけないことにご注意ください。",
"interwiki_addbutton": "追加",
"interwiki_added": "インターウィキテーブルに接頭辞「$1」を追加しました。",
@ -65,7 +68,7 @@
"interwiki-global-links": "グローバルのインターウィキ接頭辞",
"interwiki-global-description": "これらの接頭辞は、グローバル設定から継承されるため、継承元のウィキのみで編集できます。",
"interwiki-local-links": "ローカルのインターウィキ接頭辞",
"interwiki-local-description": "これらの接頭辞はローカルに存在します。グローバル設定と重複した場合は、すべてグローバルの定義が優先されます。",
"interwiki-local-description": "これらの接頭辞はローカルに存在します。グローバル設定と重複している場合はグローバル定義を上書きします。",
"interwiki-links": "インターウィキ接頭辞",
"interwiki-language-links": "言語間リンク接頭辞",
"interwiki-language-description": "これらの接頭辞は、定義済みの言語コードと一致しており、ページに追加する「{{int:otherlanguages}}」の一覧を作成する際に使用されます。"

View File

@ -16,7 +16,7 @@
"interwiki": "Ver e editar dados de interwikis",
"interwiki-title-norights": "Ver dados interwiki",
"interwiki-desc": "Adiciona uma [[Special:Interwiki|página especial]] para visualizar e editar a tabela de interwikis",
"interwiki_intro": "Esta é uma visão geral da tabela de interwiki, que define os atalhos de prefixo usados para se conectar rapidamente a diferentes wikis e outros sites externos. Para o uso recomendado, consulte [//www.mediawiki.org/wiki/Extension:Interwiki o manual em MediaWiki.org].",
"interwiki_intro": "Esta é uma visão geral da tabela de interwiki, que define os atalhos de prefixo usados para se conectar rapidamente a diferentes wikis e outros sites externos. Para o uso recomendado, consulte [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki o manual em MediaWiki.org].",
"interwiki-legend-label": "Legenda",
"interwiki_prefix": "Prefixo",
"interwiki-prefix-label": "Prefixo:",

View File

@ -20,19 +20,19 @@
"interwiki": "Просмотр и изменение настроек интервики",
"interwiki-title-norights": "Просмотреть данные об интервики",
"interwiki-desc": "Добавляет [[Special:Interwiki|служебную страницу]] для просмотра и редактирования таблицы приставок интервики.",
"interwiki_intro": "Это обзор таблицы интервики, которая определяет префиксы, используемые для коротких ссылок на различные вики и другие внешние сайты. Для рекомендаций по использованию см. [//www.mediawiki.org/wiki/Extension:Interwiki руководство на MediaWiki.org].",
"interwiki_intro": "Это обзор таблицы интервики, которая определяет префиксы, используемые для коротких ссылок на различные вики и другие внешние сайты. Для рекомендаций по использованию см. [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki руководство на MediaWiki.org].",
"interwiki-legend-label": "Легенда",
"interwiki_prefix": "Приставка",
"interwiki_prefix": "Префикс",
"interwiki-prefix-label": "Префикс:",
"interwiki_prefix_intro": "Приставка интервики для использования в синтаксисе вики-текста: <code>[<nowiki />[приставка:<em>название страницы</em>]]</code>.",
"interwiki_prefix_intro": "Префикс интервик для использования в синтаксисе вики-текста: <code>[<nowiki />[префикс:<em>название страницы</em>]]</code>.",
"interwiki_url_intro": "Шаблон для URL-адресов. Вместо $1 будет подставлено <em>название страницы</em> в <code>[<nowiki />[префикс:<em>название страницы</em>]]</code>.",
"interwiki_local": "Пересылка",
"interwiki-local-label": "Пересылка:",
"interwiki_local_0_intro": "Внешние HTTP-запросы к локальным вики с использованием этого интервики-префикса в URL-адресе приведут на страницу ошибки «{{int:badtitle}}».",
"interwiki_local_0_intro": "Внешние HTTP-запросы к локальным вики с использованием этого префикса интервики в URL-адресе приведут на страницу ошибки «{{int:badtitle}}».",
"interwiki_local_1_intro": "Внешние HTTP-запросы на локальные вики с использованием этого интервики-префикса в URL-адресе перенаправят на целевой URL-адрес интервики-ссылки (т. е. обрабатывается подобно ссылкам на локальные страницы).",
"interwiki_trans": "Включение",
"interwiki-trans-label": "Включение:",
"interwiki_trans_1_intro": "Если используется синтаксис <code>{<nowiki />{prefix:<em>pagename</em>}}</code>, разрешается встраивание шаблонов/страниц из других вики, если интервики-включения разрешены в ([//www.mediawiki.org/wiki/Manual:$wgEnableScaryTranscluding страшных включениях]).",
"interwiki_trans_1_intro": "Если используется синтаксис <code>{<nowiki />{prefix:<em>pagename</em>}}</code>, разрешается встраивание шаблонов/страниц из других вики, если интервики-включения разрешены в ([https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgEnableScaryTranscluding страшных включениях]).",
"interwiki_trans_0_intro": "Не позволяет <code>{<nowiki />{prefix:<em>pagename</em>}}</code> включать сторонние шаблоны/страницы. При этом ищет локальную страницу в пространстве имён шаблонов.",
"interwiki_1": "да",
"interwiki_0": "нет",
@ -40,27 +40,30 @@
"interwiki-cached": "Сведения об интервики взяты из кэша. Измененить кэш не представляется возможным.",
"interwiki_edit": "Править",
"interwiki_reasonfield": "Причина:",
"interwiki_deleting": "Вы удаляете приставку «$1».",
"interwiki_deleting": "Вы удаляете префикс «$1».",
"interwiki_deleted": "Префикс «$1» удалён из таблицы интервики.",
"interwiki_delfailed": "Префикс «$1» не может быть удалён из таблицы интервики.",
"interwiki-logtext": "Просмотр журнала",
"interwiki_addtext": "Добавить языковой или интервики-префикс",
"interwiki-addtext-local": "Добавить локальный языковой или интервики-префикс",
"interwiki_addintro": "Вы собираетесь добавить новую интервики-приставку. Помните, что она не может содержать пробелы ( ), двоеточия (:), амперсанды (&) и знаки равенства (=).",
"interwiki-addtext-nolang": "Добавить префикс интервики",
"interwiki-addtext-local-nolang": "Добавить локальный префикс интервики",
"interwiki_addintro": "Вы собираетесь добавить новый префикс интервики.\nПомните, что она не может содержать знаки пробела ( ), двоеточия (:), амперсанда (&) и равенства (=).",
"interwiki_addbutton": "Добавить",
"interwiki_added": "Префикс «$1» добавлен в таблицу интервики.",
"interwiki_addfailed": "Префикс «$1» не может быть добавлен в таблицу интервики. Возможно, он уже в ней присутствует.",
"interwiki_edittext": "Редактирование интервики-приставок",
"interwiki_editintro": "Вы редактируете интервики-приставку. Помните, что это может сломать существующие ссылки.",
"interwiki_edittext": "Редактирование префиксов интервики",
"interwiki_editintro": "Вы редактируете префикс интервики.\nПомните, что это может сломать существующие ссылки.",
"interwiki_edited": "Префикс «$1» изменён в таблице интервики.",
"interwiki_editerror": "Префикс «$1» не может быть изменён в таблице интервики. Возможно, его там не существует.",
"interwiki_editerror": "Префикс «$1» не может быть изменён в таблице интервики.\nВозможно, его там не существует.",
"interwiki-badprefix": "Указанный префикс интервики «$1» содержит недопустимые символы",
"interwiki-cannotaddlocallanguage": "Префикс «$1» соответствует одному из кодов языка. Добавление локальных межъязыковых префиксов отключено при использовании глобальной межъязыковой базы данных.",
"interwiki-submit-empty": "Префикс и URL не могут быть пустыми.",
"interwiki-submit-invalidurl": "Некорректный протокол URL-адреса.",
"log-name-interwiki": "Журнал изменений таблицы интервики",
"logentry-interwiki-iw_add": "$1 {{GENDER:$2|добавил|добавила}} префикс «$4» ($5) (trans: $6; local: $7) в интервики-таблицу",
"logentry-interwiki-iw_edit": "$1 {{GENDER:$2|изменил|изменила}} префикс «$4» ($5) (trans: $6; local: $7) в интервики-таблице",
"logentry-interwiki-iw_delete": "$1 {{GENDER:$2|удалил|удалила}} префикс «$4» из интервики-таблицы",
"logentry-interwiki-iw_delete": "$1 {{GENDER:$2|удалил|удалила}} префикс «$4» из интервики таблицы",
"log-description-interwiki": "Это журнал изменений [[Special:Interwiki|таблицы интервики]].",
"right-interwiki": "редактирование данных интервики",
"action-interwiki": "изменение записи интервики",
@ -70,5 +73,7 @@
"interwiki-local-description": "Эти префиксы существуют локально. Любые префиксы, дублирующие имеющиеся в глобальной конфигурации, переопределяют глобальные определения.",
"interwiki-links": "Префиксы интервики",
"interwiki-language-links": "Межъязыковые префиксы",
"interwiki-language-description": "Эти префиксы соответствуют определённым языковым кодам и будут использоваться для создания списка «{{int:otherlanguages}}» при добавлении на страницу."
"interwiki-language-description": "Эти префиксы соответствуют определённым языковым кодам и будут использоваться для создания списка «{{int:otherlanguages}}» при добавлении на страницу.",
"interwiki-global-language-links": "Глобальные межъязыковые префиксы",
"interwiki-global-language-description": "Эти префиксы соответствуют определённым языковым кодам и будут использоваться для создания списка «{{int:otherlanguages}}» при добавлении на страницу. Поскольку они унаследованы от глобальной конфигурации, их можно редактировать только в исходной вики. Глобальные межъязыковые определения не могут быть переопределены локально."
}

View File

@ -15,7 +15,7 @@
"interwiki": "Приказ и уређивање података о међувикију",
"interwiki-title-norights": "Међувики",
"interwiki-desc": "Додаје [[Special:Interwiki|посебну страницу]] за преглед и уређивање табеле међувикија",
"interwiki_intro": "Ово је преглед табеле међувикија, који дефинише пречице префикса које се користе за брзо повезивање са различитим викијима и другим спољним сајтовима. За препоручену употребу, молимо погледајте [//www.mediawiki.org/wiki/Extension:Interwiki упутство на Медијавикију].",
"interwiki_intro": "Ово је преглед табеле међувикија, који дефинише пречице префикса које се користе за брзо повезивање са различитим викијима и другим спољним сајтовима. За препоручену употребу, молимо погледајте [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki упутство на Медијавикију].",
"interwiki-legend-label": "Легенда",
"interwiki_prefix": "Префикс",
"interwiki-prefix-label": "Префикс:",
@ -39,7 +39,7 @@
"interwiki_added": "Префикс „$1“ је додат у табелу међувикија.",
"interwiki_addfailed": "Префикс „$1“ није могао бити додат у табелу међувикија.\nВероватно већ постоји у њој.",
"interwiki_edittext": "Мењање међувики префикса",
"interwiki_editintro": "Уређујете међувики префикс.\nЗапамтите да ово може да оштети постојеће везе.",
"interwiki_editintro": "Уређујете међувики префикс.\nИмајте у виду да ово може да оштети постојеће везе.",
"interwiki_edited": "Префикс „$1“ је измењен у табели међувикија.",
"interwiki_editerror": "Префикс „$1“ не може бити измењен у табели међувикија.\nВероватно јер не постоји.",
"interwiki-badprefix": "Задати међувики префикс „$1“ садржи недозвољене знакове",

View File

@ -0,0 +1,8 @@
{
"@metadata": {
"authors": [
"Patriot Kur"
]
},
"interwiki_edit": "Dəqiş karde"
}

View File

@ -13,20 +13,20 @@
"interwiki": "Vikilerarası veriyi gör ve değiştir",
"interwiki-title-norights": "Vikilerarası veriyi gör",
"interwiki-desc": "Vikilerarası tabloyu görmek ve değiştirmek için [[Special:Interwiki|özel bir sayfa]] ekler",
"interwiki_intro": "Bu vikilerarası tabloya genel bir bakıştır ve farklı vikiler ile diğer sitelere bağlantı sağlamak amacıyla önceden belirtilmiş kısayolları tanımlar. Tavsiye edilen kullanım için [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki MediaWiki.org'da el kitabına] bakınız.",
"interwiki-legend-label": "Rehber",
"interwiki_intro": "Bu vikilerarası tabloya genel bir bakıştır ve farklı vikiler ile diğer sitelere bağlantı sağlamak amacıyla önceden belirtilmiş kısayolları tanımlar. Tavsiye edilen kullanım için [https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:Interwiki MediaWiki.org'da kılavuzuna] bakın.",
"interwiki-legend-label": "Gösterge",
"interwiki_prefix": "Önek",
"interwiki-prefix-label": "Önek:",
"interwiki_prefix_intro": "<code>[<nowiki />[önek:<em>sayfa adı</em>]]</code> vikimetin sözdiziminde kullanılacak vikiarası öneki.",
"interwiki_url_intro": "URL şablonu. $1 yer tutucusu, <code>[<nowiki /> [öneki:<em>sayfa adı</em>]]</code>'daki <em>sayfa adı</em> ile değiştirilecektir.",
"interwiki_url_intro": "URL şablonu. $1 yer tutucusu, <code>[<nowiki />[önek:<em>sayfa adı</em>]]</code>'daki <em>sayfa adı</em> ile değiştirilecektir.",
"interwiki_local": "Yönlendir",
"interwiki-local-label": "Yönlendir",
"interwiki_local_0_intro": "URL'de bu vikiarası önekini kullanarak yerel vikiye yapılan harici HTTP istekleri, \"{{int:badtitle}}\" hata sayfasıyla sonuçlanır.",
"interwiki_local_1_intro": "Bu vikiarası önekini kullanarak yerel vikiye harici HTTP istekleri, vikiarasının hedef URL'sine yönlendirilir (yani, yerel sayfalara bağlantılar gibi davranılır).",
"interwiki_trans": "Görüntüle",
"interwiki-trans-label": "Görüntüle",
"interwiki_trans_1_intro": "Vikimetin sözdizimi <code>{<nowiki />{öneki:<em>sayfa adı</em>}}</code> kullanılıyorsa, genel olarak vikiarası eklemeleri etkinse yabancı vikiden şablon/sayfa eklemesine izin verin ([https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgEnableScaryTranscluding/tr aşma dahil olmak üzere]).",
"interwiki_trans_0_intro": "<code>{<nowiki />{öneki:<em>sayfa adı</em>}}</code>'nın yabancı şablonları/sayfaları dönüştürmesine izin vermeyin, bunun yerine şablon ad alanında yerel bir sayfa arayın.",
"interwiki_trans_1_intro": "Vikimetin sözdizimi <code>{<nowiki />{önek:<em>sayfa adı</em>}}</code> kullanılıyorsa, genel olarak vikiarası eklemeleri etkinse yabancı vikiden şablon/sayfa eklemesine izin verin ([https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgEnableScaryTranscluding aşma dahil olmak üzere]).",
"interwiki_trans_0_intro": "<code>{<nowiki />{önek:<em>sayfa adı</em>}}</code>'nın yabancı şablonları/sayfaları dönüştürmesine izin vermeyin, bunun yerine şablon ad alanında yerel bir sayfa arayın.",
"interwiki_1": "evet",
"interwiki_0": "hayır",
"interwiki_error": "Hata: Vikiarası tablosu boş ya da başka bir şeyde sorun çıktı.",
@ -41,7 +41,7 @@
"interwiki-addtext-local": "Yerel bir vikiarası veya dil öneki ekleyin",
"interwiki-addtext-nolang": "Vikiarası öneki ekle",
"interwiki-addtext-local-nolang": "Yerel bir vikiarası öneki ekle",
"interwiki_addintro": "Yeni bir interwiki öneki ekliyorsunuz.\nBoşluk (), iki nokta üst üste (:), ve işareti (&) veya eşittir işareti (=) içeremeyeceğini unutmayın.",
"interwiki_addintro": "Yeni bir vikiarası öneki ekliyorsunuz.\nBoşluk (), iki nokta üst üste (:), ve işareti (&) veya eşittir işareti (=) içeremeyeceğini unutmayın.",
"interwiki_addbutton": "Ekle",
"interwiki_added": "Vikiarası tablosuna \"$1\" öneki eklendi.",
"interwiki_addfailed": "\"$1\" öneki vikiarası tablosuna eklenemedi.\nMuhtemelen vikiarası tablosunda zaten var.",
@ -54,10 +54,10 @@
"interwiki-submit-empty": "Önek ve URL boş bırakılamaz.",
"interwiki-submit-invalidurl": "URL protokolü geçersiz.",
"log-name-interwiki": "Vikiarası tablo günlüğü",
"logentry-interwiki-iw_add": "$1, \"$4\" ($5) öneki (trans: $6; yerel: $7) wiki arası tablosuna {{GENDER:$2|ekledi}}",
"logentry-interwiki-iw_edit": "$1, \"$4\" ($5) öneki (trans: $6; yerel: $7) wiki arası tablosunda {{GENDER:$2|değiştirdi}}",
"logentry-interwiki-iw_add": "$1, \"$4\" ($5) öneki (görüntü: $6; yerel: $7) vikiarası tablosuna {{GENDER:$2|ekledi}}",
"logentry-interwiki-iw_edit": "$1, \"$4\" ($5) öneki (görüntü: $6; yerel: $7) vikiarası tablosunda {{GENDER:$2|değiştirdi}}",
"logentry-interwiki-iw_delete": "$1 viki arası tablosundan \"$4\" öneki {{GENDER:$2|kaldırıldı}}",
"log-description-interwiki": "Bu [[Special:Interwiki|viki arası tablosu]] öğesinde yapılan değişikliklerin günlüğüdür.",
"log-description-interwiki": "Bu [[Special:Interwiki|vikiarası tablosu]] öğesinde yapılan değişikliklerin günlüğüdür.",
"right-interwiki": "Vikiarası verilerini düzenler",
"action-interwiki": "bu vikiarası girdisini değiştir",
"interwiki-global-links": "Küresel vikiarası önekleri",

View File

@ -202,7 +202,7 @@ class SpecialInterwiki extends SpecialPage {
$htmlForm->setSubmitTextMsg( $action !== 'add' ? $action : 'interwiki_addbutton' )
->setIntro( $this->msg( $action !== 'delete' ? "interwiki_{$action}intro" :
'interwiki_deleting', $prefix ) )
'interwiki_deleting', $prefix )->escaped() )
->show();
} else {
$htmlForm->suppressDefaultSubmit()

View File

@ -15,6 +15,7 @@
"parallel-lint . --exclude vendor --exclude node_modules",
"phpcs -p -s",
"minus-x check ."
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -118,5 +118,6 @@
"multimediaviewer-enable-confirmation-text": "Kiedy następnym razem klikniesz na miniaturkę na {{GRAMMAR:MS.lp|$1}}, wyświetli się Media Viewer.",
"multimediaviewer-enable-alert": "Media Viewer jest wyłączony",
"multimediaviewer-disable-info-title": "Wyłączyłeś Media Viewer",
"multimediaviewer-disable-info": "Wciąż możesz oglądać poszczególne pliki za pomocą Media Viewera"
"multimediaviewer-disable-info": "Wciąż możesz oglądać poszczególne pliki za pomocą Media Viewera",
"multimediaviewer-errorreport-privacywarning": "Szczegóły błędu są dołączane do zgłoszenia, które będzie publicznie widoczne. Jeśli nie czujesz się z tym komfortowo, możesz zmodyfikować swoje zgłoszenie i usunąć dane, których nie chcesz udostępniać."
}

View File

@ -0,0 +1,2 @@
<?php
$wgUseInstantCommons = true;

View File

@ -1,7 +1,7 @@
{
"require": {
"christian-riesen/base32": "1.3.2",
"jakobo/hotp-php": "1.0.1"
"christian-riesen/base32": "1.4.0",
"jakobo/hotp-php": "2.0.0"
},
"require-dev": {
"mediawiki/mediawiki-codesniffer": "31.0.0",
@ -21,6 +21,7 @@
"composer lint",
"composer phpcs",
"minus-x check ."
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -42,7 +42,6 @@
},
"Hooks": {
"AuthChangeFormFields": "\\MediaWiki\\Extension\\OATHAuth\\Hook\\AuthChangeFormFields\\TOTPExtendTokenField::callback",
"TwoFactorIsEnabled": "\\MediaWiki\\Extension\\OATHAuth\\Hook\\TwoFactorIsEnabled\\SetIsEnabled::callback",
"LoadExtensionSchemaUpdates": "\\MediaWiki\\Extension\\OATHAuth\\Hook\\LoadExtensionSchemaUpdates\\UpdateTables::callback",
"GetPreferences": "\\MediaWiki\\Extension\\OATHAuth\\Hook\\GetPreferences\\AuthModule::callback",
"getUserPermissionsErrors": "\\MediaWiki\\Extension\\OATHAuth\\Hook\\GetUserPermissionsErrors\\CheckExclusiveRights::callback"

View File

@ -1,54 +0,0 @@
<?php
namespace MediaWiki\Extension\OATHAuth\Hook\TwoFactorIsEnabled;
use MediaWiki\Extension\OATHAuth\OATHUser;
use MediaWiki\MediaWikiServices;
use RequestContext;
class SetIsEnabled {
/**
* @var OATHUser
*/
protected $authUser;
/**
* @var bool
*/
protected $isEnabled;
/**
* @param bool &$isEnabled
* @return bool
*/
public static function callback( &$isEnabled ) {
$userRepo = MediaWikiServices::getInstance()->getService( 'OATHUserRepository' );
$authUser = $userRepo->findByUser( RequestContext::getMain()->getUser() );
$handler = new static( $authUser, $isEnabled );
return $handler->execute();
}
/**
* SetIsEnabled constructor.
* @param OATHUser $authUser
* @param bool &$isEnabled
*/
protected function __construct( $authUser, &$isEnabled ) {
$this->authUser = $authUser;
$this->isEnabled = &$isEnabled;
}
protected function execute() {
if ( $this->authUser && $this->authUser->getModule() !== null ) {
$this->isEnabled = true;
# This two-factor extension is enabled by the user,
# we don't need to check others.
return false;
} else {
$this->isEnabled = false;
# This two-factor extension isn't enabled by the user,
# but others may be.
return true;
}
}
}

View File

@ -15,6 +15,7 @@
"parallel-lint . --exclude vendor --exclude node_modules",
"phpcs -p -s",
"minus-x check ."
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -51,7 +51,7 @@ class ReplaceTextSearch {
'rev_id = page_latest',
'rev_id = slot_revision_id',
'slot_content_id = content_id',
'CAST(SUBSTRING(content_address, 4) AS INTEGER) = old_id'
'CAST(SUBSTRING(content_address, 4) AS SIGNED) = old_id'
];
self::categoryCondition( $category, $tables, $conds );

View File

@ -30,6 +30,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -36,6 +36,7 @@ return [
'applescript' => true,
'arduino' => true,
'arexx' => true,
'arrow' => true,
'as' => true,
'as3' => true,
'asm' => true,
@ -50,6 +51,7 @@ return [
'autoit' => true,
'awk' => true,
'b3d' => true,
'bare' => true,
'basemake' => true,
'bash' => true,
'basic' => true,
@ -164,9 +166,11 @@ return [
'debcontrol' => true,
'debsources' => true,
'delphi' => true,
'devicetree' => true,
'dg' => true,
'diff' => true,
'django' => true,
'dmesg' => true,
'do' => true,
'docker' => true,
'dockerfile' => true,
@ -175,6 +179,7 @@ return [
'dosini' => true,
'dpatch' => true,
'dtd' => true,
'dts' => true,
'duby' => true,
'duel' => true,
'dylan' => true,
@ -201,6 +206,7 @@ return [
'erlang' => true,
'evoque' => true,
'ex' => true,
'execline' => true,
'exs' => true,
'extempore' => true,
'ezhil' => true,
@ -223,10 +229,13 @@ return [
'foxpro' => true,
'freefem' => true,
'fsharp' => true,
'fstar' => true,
'fy' => true,
'gap' => true,
'gas' => true,
'gawk' => true,
'gd' => true,
'gdscript' => true,
'genshi' => true,
'genshitext' => true,
'gherkin' => true,
@ -352,6 +361,7 @@ return [
'kconfig' => true,
'kernel-config' => true,
'kid' => true,
'kmsg' => true,
'koka' => true,
'kotlin' => true,
'ksh' => true,
@ -381,6 +391,8 @@ return [
'live-script' => true,
'livescript' => true,
'llvm' => true,
'llvm-mir' => true,
'llvm-mir-body' => true,
'logos' => true,
'logtalk' => true,
'lsl' => true,
@ -402,6 +414,7 @@ return [
'mf' => true,
'mime' => true,
'minid' => true,
'miniscript' => true,
'mma' => true,
'modelica' => true,
'modula2' => true,
@ -412,6 +425,7 @@ return [
'moocode' => true,
'moon' => true,
'moonscript' => true,
'mosel' => true,
'mozhashpreproc' => true,
'mozpercentpreproc' => true,
'mq4' => true,
@ -419,6 +433,7 @@ return [
'mql' => true,
'mql4' => true,
'mql5' => true,
'ms' => true,
'msc' => true,
'mscgen' => true,
'mupad' => true,
@ -476,6 +491,7 @@ return [
'pascal' => true,
'pawn' => true,
'pcmk' => true,
'peg' => true,
'perl' => true,
'perl6' => true,
'php' => true,
@ -489,6 +505,7 @@ return [
'pl6' => true,
'plpgsql' => true,
'po' => true,
'pointless' => true,
'pony' => true,
'posh' => true,
'postgres' => true,
@ -503,6 +520,7 @@ return [
'praat' => true,
'progress' => true,
'prolog' => true,
'promql' => true,
'properties' => true,
'proto' => true,
'protobuf' => true,
@ -510,6 +528,7 @@ return [
'ps1con' => true,
'psm1' => true,
'psql' => true,
'psysh' => true,
'pug' => true,
'puppet' => true,
'py' => true,
@ -542,11 +561,14 @@ return [
'ragel-objc' => true,
'ragel-rb' => true,
'ragel-ruby' => true,
'raku' => true,
'raw' => true,
'rb' => true,
'rbcon' => true,
'rconsole' => true,
'rd' => true,
'reason' => true,
'reasonml' => true,
'rebol' => true,
'red' => true,
'red/system' => true,
@ -558,6 +580,7 @@ return [
'restructuredtext' => true,
'rexx' => true,
'rhtml' => true,
'ride' => true,
'rkt' => true,
'rnc' => true,
'rng-compact' => true,
@ -595,7 +618,9 @@ return [
'shen' => true,
'shex' => true,
'shexc' => true,
'sieve' => true,
'silver' => true,
'singularity' => true,
'slash' => true,
'slim' => true,
'sls' => true,
@ -646,6 +671,8 @@ return [
'text' => true,
'tf' => true,
'thrift' => true,
'tid' => true,
'tnt' => true,
'todotxt' => true,
'toml' => true,
'trac-wiki' => true,
@ -664,6 +691,8 @@ return [
'udiff' => true,
'unicon' => true,
'urbiscript' => true,
'usd' => true,
'usda' => true,
'v' => true,
'vala' => true,
'vapi' => true,
@ -681,6 +710,7 @@ return [
'vhdl' => true,
'vim' => true,
'wdiff' => true,
'webidl' => true,
'whiley' => true,
'winbatch' => true,
'winbugs' => true,
@ -714,6 +744,7 @@ return [
'xul+mozpreproc' => true,
'yaml' => true,
'yaml+jinja' => true,
'yang' => true,
'zeek' => true,
'zephir' => true,
'zig' => true,

View File

@ -39,6 +39,7 @@
"parallel-lint . --exclude vendor --exclude node_modules",
"phpcs -p -s",
"minus-x check ."
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -1,8 +1,10 @@
{
"@metadata": {
"authors": [
"Candalua"
"Candalua",
"Fierodelveneto"
]
},
"syntaxhighlight-desc": "Evidensia la sintassi dei linguagi de programazion <code>&lt;syntaxhighlight&gt;</code> tramite [http://pygments.org/ Pygments]"
"syntaxhighlight-desc": "Evidensia la sintassi dei linguagi de programazion <code>&lt;syntaxhighlight&gt;</code> tramite [http://pygments.org/ Pygments]",
"syntaxhighlight-source-category": "Voxe che łe dòpara tag-source deprecai"
}

View File

@ -57,7 +57,10 @@ class UpdateLexerList extends Maintenance {
foreach ( explode( "\n", $output ) as $line ) {
if ( substr( $line, 0, 1 ) === '*' ) {
$newLexers = explode( ', ', trim( $line, "* :\n" ) );
$lexers = array_merge( $lexers, $newLexers );
// Skip internal, unnamed lexers
if ( $newLexers[0] !== '' ) {
$lexers = array_merge( $lexers, $newLexers );
}
}
}
$lexers = array_unique( $lexers );

View File

@ -1,6 +1,11 @@
/* Stylesheet generated by updateCSS.php */
pre { line-height: 125%; }
td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; }
span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; }
td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.mw-highlight .hll { background-color: #ffffcc }
.mw-highlight { background: #f8f8f8; }
.mw-highlight { background: #f8f8f8; }
.mw-highlight .c { color: #408080; font-style: italic } /* Comment */
.mw-highlight .err { border: 1px solid #FF0000 } /* Error */
.mw-highlight .k { color: #008000; font-weight: bold } /* Keyword */

View File

@ -1 +1 @@
2.5.2
2.7.4

View File

@ -7,11 +7,11 @@
"""
import hashlib
import io
import json
import os
import stat
import textwrap
import urllib.request
import xmlrpc.client
import zipfile
@ -28,14 +28,15 @@ PYGMENTIZE_LAUNCHER = textwrap.dedent('''\
print('Querying PyPI for the latest Pygments release...')
pypi = xmlrpc.client.ServerProxy('https://pypi.python.org/pypi')
latest_version = pypi.package_releases('Pygments')[0]
req = urllib.request.urlopen('https://pypi.python.org/pypi/Pygments/json')
data = json.loads(req.read().decode('utf-8'))
latest_version = data['info']['version']
url = None
for release in pypi.release_urls('Pygments', latest_version):
for release in data['releases'][latest_version]:
if (release['packagetype'] == 'bdist_wheel' and
'py3' in release['python_version']):
url = release['url']
md5_digest = release['md5_digest']
digest = release['digests']['sha256']
break
if not url:
@ -46,8 +47,8 @@ req = urllib.request.urlopen(url)
buf = io.BytesIO(req.read())
print('Verifying...')
if hashlib.md5(buf.getvalue()).hexdigest() != md5_digest:
raise RuntimeError('MD5 checksum mismatch.')
if hashlib.sha256(buf.getvalue()).hexdigest() != digest:
raise RuntimeError('checksum mismatch!')
print('Creating executable ZIP bundle...')
with zipfile.ZipFile(buf, 'a') as zf:
@ -67,3 +68,4 @@ with open(os.path.join(script_dir, 'VERSION'), 'w') as f:
f.write(latest_version + '\n')
print('Done. Wrote %s bytes to %s' % (len(data), file_path))
print("Don't forget to run updateCSS.php and updateLexerList.php (in ../maintenance).")

View File

@ -15,6 +15,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -120,6 +120,7 @@
"templatedata-modal-button-delparam",
"templatedata-modal-button-done",
"templatedata-modal-button-importParams",
"templatedata-modal-button-map",
"templatedata-modal-button-restoreparam",
"templatedata-modal-button-saveparam",
"templatedata-modal-confirmcancel",
@ -136,6 +137,7 @@
"templatedata-modal-notice-import-numparams",
"templatedata-modal-placeholder-paramkey",
"templatedata-modal-search-input-placeholder",
"templatedata-modal-placeholder-mapinfo",
"templatedata-modal-table-param-actions",
"templatedata-modal-table-param-aliases",
"templatedata-modal-table-param-autovalue",

View File

@ -64,6 +64,7 @@
"templatedata-modal-button-changelang": "Change language",
"templatedata-modal-button-delparam": "Remove parameter information",
"templatedata-modal-button-done": "Done",
"templatedata-modal-button-map": "View map",
"templatedata-modal-button-importParams": "Import parameters",
"templatedata-modal-button-restoreparam": "Restore parameter",
"templatedata-modal-button-saveparam": "Save",
@ -80,6 +81,7 @@
"templatedata-modal-json-error-replace": "Replace",
"templatedata-modal-notice-import-numparams": "$1 new {{PLURAL:$1|parameter was|parameters were}} imported: $2",
"templatedata-modal-placeholder-paramkey": "Parameter name",
"templatedata-modal-placeholder-mapinfo": "This template has no maps object",
"templatedata-modal-search-input-placeholder": "Search by language name or code",
"templatedata-modal-table-param-actions": "Actions",
"templatedata-modal-table-param-aliases": "Aliases (comma separated)",

View File

@ -52,6 +52,7 @@
"templatedata-modal-button-changelang": "Promijeni jezik",
"templatedata-modal-button-delparam": "Ukloni",
"templatedata-modal-button-done": "Gotovo",
"templatedata-modal-button-map": "Prikaži kartu",
"templatedata-modal-button-importParams": "Uvezi parametre",
"templatedata-modal-button-restoreparam": "Vrati parametar",
"templatedata-modal-button-saveparam": "Spremi",
@ -65,6 +66,7 @@
"templatedata-modal-format-null": "Nije naveden",
"templatedata-modal-notice-import-numparams": "{{PLURAL:$1|Uvezen|Uvezena|Uvezeno}} $1 {{PLURAL:$1|novi parametar|nova parametra|novih parametara}}.",
"templatedata-modal-placeholder-paramkey": "Ime parametra",
"templatedata-modal-placeholder-mapinfo": "Ovaj predložak nema kartografskih objekata",
"templatedata-modal-search-input-placeholder": "Pretraži po imenu ili kôdu jezika",
"templatedata-modal-table-param-actions": "Radnje",
"templatedata-modal-table-param-aliases": "Pseudonimi (odvojeni zarezima)",

View File

@ -8,7 +8,7 @@
"templatedata-doc-no-params-set": "Gien parameters an-egeven",
"templatedata-doc-param-autovalue": "Automatiese weerde",
"templatedata-doc-param-default": "Standard",
"templatedata-doc-param-desc": "Beschrieving",
"templatedata-doc-param-desc": "Beskryving",
"templatedata-doc-param-desc-empty": "gien beschrieving",
"templatedata-doc-param-name": "Parameter",
"templatedata-doc-param-status": "Staotus",
@ -34,7 +34,7 @@
"templatedata-modal-button-addparam": "Parameter derbie doon",
"templatedata-modal-button-apply": "Toepassen",
"templatedata-modal-button-back": "Weerumme",
"templatedata-modal-button-cancel": "Aofbreken",
"templatedata-modal-button-cancel": "Afbreaken",
"templatedata-modal-button-changelang": "Taal wiezigen",
"templatedata-modal-button-delparam": "Parameterinformasie vortdoon",
"templatedata-modal-button-importParams": "Parameters invoeren",

View File

@ -68,6 +68,7 @@
"templatedata-modal-button-changelang": "Alterar idioma",
"templatedata-modal-button-delparam": "Remover informações de parâmetro",
"templatedata-modal-button-done": "Concluído",
"templatedata-modal-button-map": "Ver mapa",
"templatedata-modal-button-importParams": "Importar parâmetros",
"templatedata-modal-button-restoreparam": "Restaurar parâmetro",
"templatedata-modal-button-saveparam": "Salvar",
@ -84,6 +85,7 @@
"templatedata-modal-json-error-replace": "Substituir",
"templatedata-modal-notice-import-numparams": "$1 novo {{PLURAL:$1|parâmetro foi|parâmetros foram}} importados: $2",
"templatedata-modal-placeholder-paramkey": "Nome do parâmetro",
"templatedata-modal-placeholder-mapinfo": "Essa predefinição não possui objeto de mapas",
"templatedata-modal-search-input-placeholder": "Buscar por nome ou código de idioma",
"templatedata-modal-table-param-actions": "Ações",
"templatedata-modal-table-param-aliases": "Nomes alternativos (separados por vírgula)",

View File

@ -75,6 +75,7 @@
"templatedata-modal-button-changelang": "Label for the button to change language in the edit dialog.\n{{Identical|Change language}}",
"templatedata-modal-button-delparam": "Button to remove a parameter.",
"templatedata-modal-button-done": "Label of the done button.\n{{Identical|Done}}",
"templatedata-modal-button-map": "Label of the view map button",
"templatedata-modal-button-importParams": "Label of the import button",
"templatedata-modal-button-restoreparam": "Label for the button to restore a previously deleted parameter in the edit dialog.",
"templatedata-modal-button-saveparam": "Label for the button to save parameter details in the templatedata edit dialog.\n{{Identical|Save}}",
@ -91,6 +92,7 @@
"templatedata-modal-json-error-replace": "Label for the button in the error message, agreeing to replace the existing faulty TemplateData string with a new one.\n{{Identical|Replace}}",
"templatedata-modal-notice-import-numparams": "Message that appears in the TemplateData generator GUI showing how many new parameters were imported into the GUI from an existing template.\n\nParameters:\n* $1 - number of parameters\n* $2 - list of parameters that were imported",
"templatedata-modal-placeholder-paramkey": "Placeholder for the input that contains new parameter name in the add parameter panel in the edit dialog.",
"templatedata-modal-placeholder-mapinfo": "Placeholder for the input that contains map information",
"templatedata-modal-search-input-placeholder": "Placeholder text for language search panel.",
"templatedata-modal-table-param-actions": "Label for a parameter property input: Parameter actions in the table\n{{Identical|Action}}",
"templatedata-modal-table-param-aliases": "Label for a parameter property input: Aliases of the parameter, instruct the user to separate aliases with commas.",

View File

@ -68,6 +68,7 @@
"templatedata-modal-button-changelang": "Dili değiştir",
"templatedata-modal-button-delparam": "Parametre bilgilerini kaldır",
"templatedata-modal-button-done": "Yapıldı",
"templatedata-modal-button-map": "Haritayı görüntüle",
"templatedata-modal-button-importParams": "Değişkenleri içe aktar",
"templatedata-modal-button-restoreparam": "Parametreyi geri yükle",
"templatedata-modal-button-saveparam": "Kaydet",
@ -84,6 +85,7 @@
"templatedata-modal-json-error-replace": "Değiştir",
"templatedata-modal-notice-import-numparams": "$1 yeni {{PLURAL:$1|parametre|parametre}} içe aktarıldı: $2",
"templatedata-modal-placeholder-paramkey": "Parametre adı",
"templatedata-modal-placeholder-mapinfo": "Bu şablonda harita nesnesi yok",
"templatedata-modal-search-input-placeholder": "Dil adı veya koda göre ara",
"templatedata-modal-table-param-actions": "Eylemler",
"templatedata-modal-table-param-aliases": "Takma adlar (virgülle ayrılmış)",

View File

@ -67,6 +67,7 @@
"templatedata-modal-button-changelang": "變更語言",
"templatedata-modal-button-delparam": "移除參數資訊",
"templatedata-modal-button-done": "完成",
"templatedata-modal-button-map": "檢視地圖",
"templatedata-modal-button-importParams": "匯入參數",
"templatedata-modal-button-restoreparam": "還原參數",
"templatedata-modal-button-saveparam": "儲存",
@ -83,6 +84,7 @@
"templatedata-modal-json-error-replace": "取代",
"templatedata-modal-notice-import-numparams": "已匯入 $1 個{{PLURAL:$1|參數}}$2",
"templatedata-modal-placeholder-paramkey": "參數名稱",
"templatedata-modal-placeholder-mapinfo": "此模板沒有地圖物件",
"templatedata-modal-search-input-placeholder": "依語言名稱或代碼搜尋",
"templatedata-modal-table-param-actions": "操作",
"templatedata-modal-table-param-aliases": "別名 (逗號分隔)",

View File

@ -27,3 +27,11 @@
.mw-templateData-doc-param-type {
white-space: nowrap;
}
.mw-tempateData-maps-panel-button {
margin-bottom: 0.5em;
}
.mw-tempateData-template-maps-input {
padding-bottom: 1em;
}

View File

@ -13,6 +13,7 @@ mw.TemplateData.Model = function mwTemplateDataModel() {
// Properties
this.params = {};
this.description = {};
this.maps = {};
this.paramOrder = [];
this.format = null;
this.paramOrderChanged = false;
@ -268,6 +269,10 @@ mw.TemplateData.Model.static.newFromObject = function ( tdObject, paramsInSource
model.addParam( param, tdObject.params[ param ] );
}
}
// maps
model.setMapInfo( JSON.stringify( tdObject.maps, null, 4 ) );
model.setTemplateDescription( tdObject.description );
// Override the param order if it exists in the templatedata string
@ -523,6 +528,35 @@ mw.TemplateData.Model.prototype.getTemplateDescription = function ( language ) {
return this.description[ language ];
};
/**
* Set the template description
*
* @param {string|Object} map New template map info
* @fires change-map
* @fires change
*/
mw.TemplateData.Model.prototype.setMapInfo = function ( map ) {
if ( !this.constructor.static.compare( this.maps, map ) ) {
if ( typeof map === 'object' ) {
$.extend( this.maps, map );
this.emit( 'change-map', map );
} else {
this.maps = map;
this.emit( 'change-map', map );
}
this.emit( 'change' );
}
};
/**
* Get the template info.
*
* @return {string|Object} The template map info.
*/
mw.TemplateData.Model.prototype.getMapInfo = function () {
return this.maps;
};
/**
* Get a specific parameter's localized property
*
@ -595,6 +629,8 @@ mw.TemplateData.Model.prototype.addKeyTemplateParamOrder = function ( key ) {
/**
* TODO: document
*
* @param {string} key
* @param {number} newIndex
* @fires change-paramOrder
* @fires change
*/
@ -1055,6 +1091,7 @@ mw.TemplateData.Model.prototype.getNewValidParameterKey = function ( key ) {
/**
* Go over a language property and remove empty language key values
*
* @param {Object} propData Property data
* @return {Object} Property data with only used language keys
*/
mw.TemplateData.Model.prototype.propRemoveUnusedLanguages = function ( propData ) {

View File

@ -43,7 +43,7 @@ mw.TemplateData.Dialog.static.actions = [
action: 'done',
label: mw.msg( 'templatedata-modal-button-done' ),
flags: [ 'primary', 'progressive' ],
modes: 'edit'
modes: [ 'edit', 'maps' ]
},
{
action: 'add',
@ -66,7 +66,7 @@ mw.TemplateData.Dialog.static.actions = [
action: 'back',
label: mw.msg( 'templatedata-modal-button-back' ),
flags: [ 'safe', 'back' ],
modes: [ 'language', 'add' ]
modes: [ 'language', 'add', 'maps' ]
}
];
@ -81,7 +81,7 @@ mw.TemplateData.Dialog.static.actions = [
* @chainable
*/
mw.TemplateData.Dialog.prototype.initialize = function () {
var templateParamsFieldset, addParamFieldlayout, languageActionFieldLayout, templateFormatFieldSet;
var templateParamsFieldset, addParamFieldlayout, languageActionFieldLayout, templateFormatFieldSet, mapsActionFieldLayout, templateMapsFieldSet;
// Parent method
mw.TemplateData.Dialog.super.prototype.initialize.call( this );
@ -98,6 +98,7 @@ mw.TemplateData.Dialog.prototype.initialize = function () {
this.editParamPanel = new OO.ui.PanelLayout();
this.languagePanel = new OO.ui.PanelLayout();
this.addParamPanel = new OO.ui.PanelLayout();
this.editMapsPanel = new OO.ui.PanelLayout();
// Language panel
this.newLanguageSearch = new mw.TemplateData.LanguageSearchWidget();
@ -118,6 +119,23 @@ mw.TemplateData.Dialog.prototype.initialize = function () {
}
);
// Maps panel
this.templateMapsInput = new OO.ui.MultilineTextInputWidget( {
classes: [ 'mw-tempateData-template-maps-input' ],
autosize: true,
disabled: true,
rows: 5,
maxRows: 200,
placeholder: mw.msg( 'templatedata-modal-placeholder-mapinfo' )
} );
templateMapsFieldSet = new OO.ui.FieldsetLayout(
this.templateMapsInput,
{
align: 'top',
label: mw.msg( 'templatedata-modal-title-map' )
}
);
// Param list panel (main)
this.languageDropdownWidget = new OO.ui.DropdownWidget();
this.languagePanelButton = new OO.ui.ButtonWidget( {
@ -139,6 +157,18 @@ mw.TemplateData.Dialog.prototype.initialize = function () {
this.templateDescriptionFieldset = new OO.ui.FieldsetLayout( {
items: [ this.descriptionInput ]
} );
// Add Maps panel button
this.mapsPanelButton = new OO.ui.ButtonWidget( {
label: mw.msg( 'templatedata-modal-button-map' ),
classes: [ 'mw-tempateData-maps-panel-button' ]
} );
mapsActionFieldLayout = new OO.ui.ActionFieldLayout(
this.mapsPanelButton,
{
align: 'left',
label: mw.msg( 'templatedata-modal-button-map' )
}
);
this.paramListNoticeLabel = new OO.ui.LabelWidget();
this.paramListNoticeLabel.$element.hide();
@ -197,6 +227,7 @@ mw.TemplateData.Dialog.prototype.initialize = function () {
this.paramListNoticeLabel.$element,
languageActionFieldLayout.$element,
this.templateDescriptionFieldset.$element,
mapsActionFieldLayout.$element,
templateFormatFieldSet.$element,
templateParamsFieldset.$element
);
@ -219,11 +250,17 @@ mw.TemplateData.Dialog.prototype.initialize = function () {
.addClass( 'tdg-templateDataDialog-addParamPanel' )
.append( addParamFieldlayout.$element );
// Maps panel
this.editMapsPanel.$element
.addClass( 'tdg-templateDataDialog-editMapsPanel' )
.append( templateMapsFieldSet.$element );
this.panels.addItems( [
this.listParamsPanel,
this.editParamPanel,
this.languagePanel,
this.addParamPanel
this.addParamPanel,
this.editMapsPanel
] );
this.panels.setItem( this.listParamsPanel );
this.panels.$element.addClass( 'tdg-templateDataDialog-panels' );
@ -244,6 +281,8 @@ mw.TemplateData.Dialog.prototype.initialize = function () {
this.descriptionInput.connect( this, { change: 'onDescriptionInputChange' } );
this.languagePanelButton.connect( this, { click: 'onLanguagePanelButton' } );
this.languageDropdownWidget.getMenu().connect( this, { select: 'onLanguageDropdownWidgetSelect' } );
this.mapsPanelButton.connect( this, { click: 'onMapsPanelButton' } );
this.templateMapsInput.connect( this, { change: 'onMapInfoChange' } );
this.paramSelect.connect( this, {
choose: 'onParamSelectChoose',
reorder: 'onParamSelectReorder'
@ -266,6 +305,15 @@ mw.TemplateData.Dialog.prototype.onModelChangeDescription = function ( descripti
this.descriptionInput.setValue( description );
};
/**
* Respond to model change of map info event
*
* @param {string} map New description
*/
mw.TemplateData.Dialog.prototype.onModelChangeMapInfo = function ( map ) {
this.templateMapsInput.setValue( map );
};
/**
* Respond to add param input change.
*
@ -349,6 +397,17 @@ mw.TemplateData.Dialog.prototype.onDescriptionInputChange = function ( value ) {
}
};
/**
* Respond to edit maps input change event
*
* @param {string} value map info value
*/
mw.TemplateData.Dialog.prototype.onMapInfoChange = function ( value ) {
if ( this.model.getMapInfo() !== value ) {
this.model.setMapInfo( value );
}
};
/**
* Respond to add language button click
*/
@ -412,6 +471,13 @@ mw.TemplateData.Dialog.prototype.onNewLanguageSearchResultsChoose = function ( i
this.switchPanels( 'listParams' );
};
/**
* Respond to edit maps button click
*/
mw.TemplateData.Dialog.prototype.onMapsPanelButton = function () {
this.switchPanels( 'editMaps' );
};
/**
* Respond to add parameter button
*/
@ -748,14 +814,14 @@ mw.TemplateData.Dialog.prototype.createParamDetails = function () {
typeItemArray.push( new OO.ui.MenuOptionWidget( {
data: paramProperties[ props ].children[ type ],
// Known messages, for grepping:
// templatedata-doc-param-type-boolean, templatedata-doc-param-type-content,
// templatedata-doc-param-type-date, templatedata-doc-param-type-line,
// templatedata-doc-param-type-number, templatedata-doc-param-type-string,
// templatedata-doc-param-type-unbalanced-wikitext, templatedata-doc-param-type-unknown,
// templatedata-doc-param-type-url, templatedata-doc-param-type-wiki-file-name,
// templatedata-doc-param-type-wiki-page-name, templatedata-doc-param-type-wiki-template-name,
// templatedata-doc-param-type-wiki-user-name
// The following messages are used here:
// * templatedata-doc-param-type-boolean, templatedata-doc-param-type-content,
// * templatedata-doc-param-type-date, templatedata-doc-param-type-line,
// * templatedata-doc-param-type-number, templatedata-doc-param-type-string,
// * templatedata-doc-param-type-unbalanced-wikitext, templatedata-doc-param-type-unknown,
// * templatedata-doc-param-type-url, templatedata-doc-param-type-wiki-file-name,
// * templatedata-doc-param-type-wiki-page-name, templatedata-doc-param-type-wiki-template-name,
// * templatedata-doc-param-type-wiki-user-name
label: mw.msg( 'templatedata-doc-param-type-' + paramProperties[ props ].children[ type ] )
} ) );
}
@ -779,11 +845,45 @@ mw.TemplateData.Dialog.prototype.createParamDetails = function () {
this.propInputs[ props ] = propInput;
// The following classes are used here:
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-actions
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-aliases
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-autovalue
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-default
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-deprecated
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-deprecatedValue
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-description
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-example
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-importoption
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-importoption-subtitle
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-label
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-name
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-required
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-suggested
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-type
// * tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-uneditablefield
propInput.$element
.addClass( 'tdg-templateDataDialog-paramInput tdg-templateDataDialog-paramList-' + props );
this.propFieldLayout[ props ] = new OO.ui.FieldLayout( propInput, {
align: 'left',
// The following messages are used here:
// * templatedata-modal-table-param-actions
// * templatedata-modal-table-param-aliases
// * templatedata-modal-table-param-autovalue
// * templatedata-modal-table-param-default
// * templatedata-modal-table-param-deprecated
// * templatedata-modal-table-param-deprecatedValue
// * templatedata-modal-table-param-description
// * templatedata-modal-table-param-example
// * templatedata-modal-table-param-importoption
// * templatedata-modal-table-param-importoption-subtitle
// * templatedata-modal-table-param-label
// * templatedata-modal-table-param-name
// * templatedata-modal-table-param-required
// * templatedata-modal-table-param-suggested
// * templatedata-modal-table-param-type
// * templatedata-modal-table-param-uneditablefield
label: mw.msg( 'templatedata-modal-table-param-' + props )
} );
@ -815,6 +915,23 @@ mw.TemplateData.Dialog.prototype.updateParamDetailsLanguage = function ( lang )
for ( i = 0; i < languageProps.length; i++ ) {
prop = languageProps[ i ];
// The following messages are used here:
// * templatedata-modal-table-param-actions
// * templatedata-modal-table-param-aliases
// * templatedata-modal-table-param-autovalue
// * templatedata-modal-table-param-default
// * templatedata-modal-table-param-deprecated
// * templatedata-modal-table-param-deprecatedValue
// * templatedata-modal-table-param-description
// * templatedata-modal-table-param-example
// * templatedata-modal-table-param-importoption
// * templatedata-modal-table-param-importoption-subtitle
// * templatedata-modal-table-param-label
// * templatedata-modal-table-param-name
// * templatedata-modal-table-param-required
// * templatedata-modal-table-param-suggested
// * templatedata-modal-table-param-type
// * templatedata-modal-table-param-uneditablefield
label = mw.msg( 'templatedata-modal-table-param-' + prop, lang );
this.propFieldLayout[ prop ].setLabel( label );
}
@ -931,6 +1048,7 @@ mw.TemplateData.Dialog.prototype.getSetupProcess = function ( data ) {
this.model.connect( this, {
'change-description': 'onModelChangeDescription',
'change-paramOrder': 'onModelChangeParamOrder',
'change-map': 'onModelChangeMapInfo',
'change-property': 'onModelChangeProperty',
change: 'onModelChange'
} );
@ -993,6 +1111,9 @@ mw.TemplateData.Dialog.prototype.setupDetailsFromModel = function () {
// Set up description
this.descriptionInput.setValue( this.model.getTemplateDescription( this.language ) );
// set up maps
this.templateMapsInput.setValue( this.model.getMapInfo() );
// Set up format
format = this.model.getTemplateFormat();
if ( format === 'inline' || format === 'block' || format === null ) {
@ -1031,6 +1152,7 @@ mw.TemplateData.Dialog.prototype.switchPanels = function ( panel ) {
this.editParamPanel.$element.hide();
this.addParamPanel.$element.hide();
this.languagePanel.$element.hide();
this.editMapsPanel.$element.hide();
break;
case 'editParam':
this.actions.setMode( 'edit' );
@ -1042,6 +1164,7 @@ mw.TemplateData.Dialog.prototype.switchPanels = function ( panel ) {
this.languagePanel.$element.hide();
this.addParamPanel.$element.hide();
this.editParamPanel.$element.show();
this.editMapsPanel.$element.hide();
break;
case 'addParam':
this.actions.setMode( 'add' );
@ -1051,6 +1174,18 @@ mw.TemplateData.Dialog.prototype.switchPanels = function ( panel ) {
this.editParamPanel.$element.hide();
this.languagePanel.$element.hide();
this.addParamPanel.$element.show();
this.editMapsPanel.$element.hide();
break;
case 'editMaps':
this.actions.setMode( 'maps' );
this.panels.setItem( this.editMapsPanel );
// Hide/show panels
this.listParamsPanel.$element.hide();
this.editParamPanel.$element.hide();
this.languagePanel.$element.hide();
this.addParamPanel.$element.hide();
this.editMapsPanel.$element.show();
this.templateMapsInput.adjustSize( true );
break;
case 'language':
this.actions.setMode( 'language' );
@ -1061,6 +1196,7 @@ mw.TemplateData.Dialog.prototype.switchPanels = function ( panel ) {
this.addParamPanel.$element.hide();
this.languagePanel.$element.show();
this.newLanguageSearch.query.focus();
this.editMapsPanel.$element.hide();
break;
}
};
@ -1082,6 +1218,11 @@ mw.TemplateData.Dialog.prototype.getActionProcess = function ( action ) {
this.switchPanels( 'addParam' );
}, this );
}
if ( action === 'maps' ) {
return new OO.ui.Process( function () {
this.switchPanels( 'editMaps' );
}, this );
}
if ( action === 'delete' ) {
return new OO.ui.Process( function () {
this.model.deleteParam( this.selectedParamKey );

View File

@ -1,7 +1,9 @@
/**
* TemplateData Param Import Widget
*
* @class
* @extends {OO.ui.ButtonWidget}
* @param {Object} [config]
*/
mw.TemplateData.ParamImportWidget = function mwTemplateDataParamImportWidget( config ) {
config = config || {};

View File

@ -15,6 +15,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -134,6 +134,7 @@ trait ApiParsoidTrait {
'Accept-Language' => self::getPageLanguage( $title )->getCode(),
'User-Agent' => 'VisualEditor-MediaWiki/' . MW_VERSION,
'Api-User-Agent' => 'VisualEditor-MediaWiki/' . MW_VERSION,
'Promise-Non-Write-API-Action' => 'true',
];
// $reqheaders take precedence over $defaultReqHeaders
$request['headers'] = $reqheaders + $defaultReqHeaders;

View File

@ -408,11 +408,15 @@ class ApiVisualEditor extends ApiBase {
/* allow IP users*/ false
);
$block = $targetUser->getBlock();
if (
!( $targetUser && $targetUser->isLoggedIn() ) &&
!User::isIP( $targetUsername )
$targetUserExists = ( $targetUser && $targetUser->isLoggedIn() );
if ( $targetUserExists && $targetUser->isHidden() &&
!$permissionManager->userHasRight( $user, 'hideuser' )
) {
// If the user exists, but is hidden, and the viewer cannot see hidden
// users, pretend like they don't exist at all. See T120883/T270453
$targetUserExists = false;
}
if ( !$targetUserExists && !User::isIP( $targetUsername ) ) {
// User does not exist
$notices[] = "<div class=\"mw-userpage-userdoesnotexist error\">\n" .
$this->msg( 'userpage-userdoesnotexist', wfEscapeWikiText( $targetUsername ) )

View File

@ -481,9 +481,9 @@ class VisualEditorHooks {
'1',
[
$cond,
$tsField . ' < ' . $dbr->addQuotes(
$tsField . ' < ' . $dbr->addQuotes( $dbr->timestamp(
$config->get( 'VisualEditorSingleEditTabSwitchTime' )
)
) )
],
__METHOD__,
[ 'LIMIT' => 1 ],

View File

@ -18,7 +18,7 @@
ve.ce.MWGalleryImageNode = function VeCeMWGalleryImageNode( model ) {
var attributes, galleryMwAttrs, mode, imagePadding,
outerDivWidth, imageHeight, innerDivHeight, innerDivMargin, innerDivWidth,
$thumbDiv, $innerDiv, $a, $img,
$thumbDiv, $innerDiv, $a, $img, resourceTitle,
defaults = mw.config.get( 'wgVisualEditorConfig' ).galleryOptions;
// Parent constructor
@ -60,6 +60,8 @@ ve.ce.MWGalleryImageNode = function VeCeMWGalleryImageNode( model ) {
outerDivWidth = innerDivWidth + 4;
}
resourceTitle = mw.Title.newFromText( attributes.resource );
this.$element
.addClass( 'gallerybox' )
.css( 'width', outerDivWidth + 'px' );
@ -79,7 +81,7 @@ ve.ce.MWGalleryImageNode = function VeCeMWGalleryImageNode( model ) {
.attr( 'width', attributes.width );
this.$filenameA = $( '<a>' )
.attr( 'href', '#' ) // Just to make it look like a link
.text( mw.Title.newFromText( attributes.resource ).getMainText() )
.text( resourceTitle ? resourceTitle.getMainText() : attributes.resource )
.toggleClass( 'oo-ui-element-hidden', galleryMwAttrs.showfilename !== 'yes' );
this.$element.prepend(

View File

@ -400,7 +400,7 @@ ve.ui.MWGalleryDialog.prototype.initialize = function () {
ve.ui.MWGalleryDialog.prototype.getSetupProcess = function ( data ) {
return ve.ui.MWGalleryDialog.super.prototype.getSetupProcess.call( this, data )
.next( function () {
var i, ilen, resource, imageTitles,
var i, ilen, resourceTitle, resource, imageTitles,
image, imageCaptionNode,
mode, widths, heights, perrow,
showFilename, classes, styles,
@ -421,7 +421,11 @@ ve.ui.MWGalleryDialog.prototype.getSetupProcess = function ( data ) {
for ( i = 0, ilen = imageNodes.length; i < ilen; i++ ) {
image = imageNodes[ i ];
resource = mw.Title.newFromText( image.getAttribute( 'resource' ), namespaceIds.file ).getPrefixedText();
resourceTitle = mw.Title.newFromText( image.getAttribute( 'resource' ), namespaceIds.file );
if ( !resourceTitle ) {
continue;
}
resource = resourceTitle.getPrefixedText();
imageCaptionNode = image.getCaptionNode();
imageTitles.push( resource );
this.initialImageData.push( {

View File

@ -16,6 +16,7 @@
"fix": [
"minus-x fix .",
"phpcbf"
]
],
"phan": "phan -d . --long-progress-bar"
}
}

View File

@ -125,6 +125,6 @@
"wikieditor-toolbar-tool-replace-emptysearch": "Soda khatir tuvem kainch ghalunk na.",
"wikieditor-toolbar-tool-replace-invalidregex": "Sodpacho nomuno tuvem ghatlam tem ovoid asa: $1",
"wikieditor-toolbar-tool-replace-word": "Akh'khem utor zulloi",
"wikieditor-toolbar-section-characters": "Khaxele okxoram",
"wikieditor-toolbar-section-characters": "Khaxelim okxoram",
"wikieditor-toolbar-section-help": "Adar"
}

View File

@ -15,23 +15,23 @@
"wikieditor-toolbar-preference-help": "Dit wördt sumtyds de 'wikitekstbewarker van 2010' enöömd.",
"wikieditor-toolbar-loading": "An et laden ...",
"wikieditor-toolbar-tool-bold": "Vet",
"wikieditor-toolbar-tool-bold-example": "Vette tekste",
"wikieditor-toolbar-tool-bold-example": "Vette tekst",
"wikieditor-toolbar-tool-italic": "Kursiv",
"wikieditor-toolbar-tool-italic-example": "Kursive tekste",
"wikieditor-toolbar-tool-italic-example": "Kursive tekst",
"wikieditor-toolbar-tool-ilink": "Interne verwysing",
"wikieditor-toolbar-tool-ilink-example": "Verwysingsbeskryving",
"wikieditor-toolbar-tool-xlink": "Üütgånde verwysing (http:// an et vöärst)",
"wikieditor-toolbar-tool-xlink-example": "http://www.example.com beskryving",
"wikieditor-toolbar-tool-link": "Verwysing",
"wikieditor-toolbar-tool-link-title": "Verwysing invogen",
"wikieditor-toolbar-tool-link-int": "Når een wikisyde",
"wikieditor-toolbar-tool-link-int": "Nå en wikisyde",
"wikieditor-toolbar-tool-link-int-target": "Sydname:",
"wikieditor-toolbar-tool-link-int-target-tooltip": "Sydname of webadres",
"wikieditor-toolbar-tool-link-int-text": "Verwysingstekste:",
"wikieditor-toolbar-tool-link-int-text": "Verwysingstekst:",
"wikieditor-toolbar-tool-link-int-text-tooltip": "Tekste dee te seen müt weasen",
"wikieditor-toolbar-tool-link-ext": "Når een üütgånde websteade",
"wikieditor-toolbar-tool-link-ext": "Nå en uutgånde websteade",
"wikieditor-toolbar-tool-link-ext-target": "Webadres:",
"wikieditor-toolbar-tool-link-ext-text": "Verwysingstekste:",
"wikieditor-toolbar-tool-link-ext-text": "Verwysingstekst:",
"wikieditor-toolbar-tool-link-insert": "Verwysing invogen",
"wikieditor-toolbar-tool-link-cancel": "Afbreaken",
"wikieditor-toolbar-tool-link-int-target-status-exists": "De syde besteyt al",
@ -47,11 +47,11 @@
"wikieditor-toolbar-tool-link-empty": "Jy hebbet niks upgeaven üm nå te verwysen.",
"wikieditor-toolbar-tool-file": "Inebeddede holder",
"wikieditor-toolbar-tool-file-example": "Vöärbeald.jpg",
"wikieditor-toolbar-tool-file-title": "Holder invogen",
"wikieditor-toolbar-file-target": "Holdername:",
"wikieditor-toolbar-tool-file-title": "Bestand invogen",
"wikieditor-toolbar-file-target": "Bestandsname:",
"wikieditor-toolbar-file-caption": "Byskrivt:",
"wikieditor-toolbar-file-size": "Groutte:",
"wikieditor-toolbar-file-float": "Üütlyning:",
"wikieditor-toolbar-file-size": "Groutde:",
"wikieditor-toolbar-file-float": "Uutlyning:",
"wikieditor-toolbar-file-default": "(standard)",
"wikieditor-toolbar-file-format": "Upmaak:",
"wikieditor-toolbar-file-format-none": "geen",

View File

@ -442,7 +442,10 @@
var label = $.wikiEditor.autoMsg( page, 'label' );
return $( '<div>' )
.text( label )
.attr( 'rel', id )
.attr( {
rel: id,
role: 'option'
} )
.data( 'context', context )
.on( 'mousedown', function ( e ) {
// No dragging!
@ -520,6 +523,7 @@
$characters
.html( html )
.children()
.attr( 'role', 'option' )
.on( 'mousedown', function ( e ) {
// No dragging!
e.preventDefault();
@ -716,8 +720,27 @@
}
break;
case 'booklet':
$pages = $( '<div>' ).addClass( 'pages' );
$index = $( '<div>' ).addClass( 'index' );
$pages = $( '<div>' )
.addClass( 'pages' )
.attr( {
tabindex: '0',
role: 'listbox'
} )
.on( 'keydown', function ( event ) {
var $selected = $pages.children().filter( function () {
return $( this ).css( 'display' ) !== 'none';
} );
$.wikiEditor.modules.toolbar.fn.handleKeyDown( $selected.children().first(), event, $pages );
} );
$index = $( '<div>' )
.addClass( 'index' )
.attr( {
tabindex: '0',
role: 'listbox'
} )
.on( 'keydown', function ( event ) {
$.wikiEditor.modules.toolbar.fn.handleKeyDown( $index, event, $index );
} );
if ( 'pages' in section ) {
for ( page in section.pages ) {
$pages.append(
@ -771,9 +794,47 @@
// Use hook for attaching new toolbar tools to avoid race conditions
mw.hook( 'wikiEditor.toolbarReady' ).fire( context.$textarea );
} );
},
handleKeyDown: function ( $element, event, $parent ) {
var $nextItem,
$currentItem = $element.find( '.wikiEditor-character-highlighted' ),
optionTop = $parent.find( '.wikiEditor-character-highlighted' ).offset().top,
selectTop = $parent.offset().top;
switch ( event.keyCode ) {
// Up arrow
case 38:
if ( $currentItem.length ) {
$currentItem.removeClass( 'wikiEditor-character-highlighted' );
$nextItem = $currentItem.prev();
$nextItem = $nextItem.length ? $nextItem : $currentItem;
$nextItem.addClass( 'wikiEditor-character-highlighted' );
} else {
$element.children().first().addClass( 'wikiEditor-character-highlighted' );
}
event.preventDefault();
event.stopPropagation();
break;
// Down arrow
case 40:
if ( $currentItem.length ) {
$currentItem.removeClass( 'wikiEditor-character-highlighted' );
$nextItem = $currentItem.next();
$nextItem = $nextItem.length ? $nextItem : $currentItem;
$nextItem.addClass( 'wikiEditor-character-highlighted' );
} else {
$element.children().first().addClass( 'wikiEditor-character-highlighted' );
}
event.preventDefault();
event.stopPropagation();
break;
// Enter
case 13:
$currentItem.trigger( 'click' );
break;
}
$parent.scrollTop( $parent.scrollTop() + ( optionTop - selectTop ) );
}
}
};
module.exports = toolbarModule;

View File

@ -233,6 +233,11 @@
padding: 4px 4px 4px 6px;
cursor: pointer;
}
.wikiEditor-character-highlighted {
background-color: rgba( 41, 98, 204, 0.1 );
color: #000;
}
}
.pages {
@ -309,7 +314,7 @@
margin-top: 5px;
height: 1em;
display: inline-block;
color: #000;
color: #202122;
text-decoration: none;
cursor: pointer;
font-family: monospace, 'Courier';
@ -322,6 +327,11 @@
border-color: #c8ccd1;
}
}
.wikiEditor-character-highlighted {
background-color: #7db1c5;
color: #000;
}
}
div[ dir='rtl' ] span {

View File

@ -6087,7 +6087,7 @@ $wgApplyIpBlocksToXff = false;
* 'edit' => [
* 'anon' => [ x, y ], // any and all anonymous edits (aggregate)
* 'user' => [ x, y ], // each logged-in user
* 'global-user' => [ x, y ], // per username, across all sites (assumes names are global)
* 'user-global' => [ x, y ], // per username, across all sites (assumes names are global)
* 'newbie' => [ x, y ], // each new autoconfirmed accounts; overrides 'user'
* 'ip' => [ x, y ], // each anon and recent account, across all sites
* 'subnet' => [ x, y ], // ... within a /24 subnet in IPv4 or /64 in IPv6
@ -6877,9 +6877,7 @@ $wgStatsdMetricPrefix = 'MediaWiki';
* Rates are sampling probabilities (e.g. 0.1 means 1 in 10 events are sampled).
* @since 1.28
*/
$wgStatsdSamplingRates = [
'wanobjectcache:*' => 0.001
];
$wgStatsdSamplingRates = [];
/**
* InfoAction retrieves a list of transclusion links (both to and from).
@ -9343,6 +9341,10 @@ $wgEventRelayerConfig = [
*
* For details about what data is sent, see: https://www.mediawiki.org/wiki/Manual:$wgPingback
*
* For the pingback privacy policy, see: https://wikimediafoundation.org/wiki/MediaWiki_Pingback_Privacy_Statement
*
* Aggregate pingback data is available at: https://pingback.wmflabs.org/
*
* @var bool
* @since 1.28
*/

View File

@ -32,11 +32,12 @@ use Wikimedia\Rdbms\IDatabase;
/**
* The running version of MediaWiki.
*
* This replaces the $wgVersion global found in earlier versions.
* This replaces the $wgVersion global found in earlier versions. When updating,
* remember to also bump the stand-alone duplicate of this in PHPVersionCheck.
*
* @since 1.35
*/
define( 'MW_VERSION', '1.35.1' );
define( 'MW_VERSION', '1.35.2' );
# Obsolete aliases

View File

@ -2791,7 +2791,9 @@ ERROR;
$block = DatabaseBlock::newFromTarget( $user, $user );
$userExists = ( $user && $user->isLoggedIn() );
if ( $userExists && $user->isHidden() && !$this->permManager->userHasRight( $this->context->getUser(), 'hideuser' ) ) {
if ( $userExists && $user->isHidden() &&
!$this->permManager->userHasRight( $this->context->getUser(), 'hideuser' )
) {
// If the user exists, but is hidden, and the viewer cannot see hidden
// users, pretend like they don't exist at all. See T120883
$userExists = false;

View File

@ -345,7 +345,7 @@ function wfUrlencode( $s ) {
*/
function wfArrayToCgi( $array1, $array2 = null, $prefix = '' ) {
if ( $array2 !== null ) {
$array1 = $array1 + $array2;
$array1 += $array2;
}
$cgi = '';

View File

@ -113,6 +113,7 @@ class HookContainer implements SalvageableService {
* hooks to the DeprecatedHooks::$deprecatedHooks array literal. New extension code should
* use the DeprecatedHooks attribute.
* - silent: (bool) If true, do not raise a deprecation warning
* - noServices: (bool) If true, do not allow hook handlers with service dependencies
* @return bool True if no handler aborted the hook
* @throws UnexpectedValueException if handlers return an invalid value
*/
@ -147,8 +148,8 @@ class HookContainer implements SalvageableService {
}
}
$handlers = $this->getHandlers( $hook );
$funcName = 'on' . str_replace( ':', '_', ucfirst( $hook ) );
$handlers = $this->getHandlers( $hook, $options );
$funcName = 'on' . strtr( ucfirst( $hook ), ':-', '__' );
foreach ( $handlers as $handler ) {
$return = $handler->$funcName( ...$args );
@ -375,26 +376,34 @@ class HookContainer implements SalvageableService {
* Return array of handler objects registered with given hook in the new system
* @internal For use by Hooks.php
* @param string $hook Name of the hook
* @param array $options Handler options, which may include:
* - noServices: Do not allow hook handlers with service dependencies
* @return array non-deprecated handler objects
*/
public function getHandlers( string $hook ) : array {
public function getHandlers( string $hook, array $options = [] ) : array {
$handlers = [];
$deprecatedHooks = $this->registry->getDeprecatedHooks();
$registeredHooks = $this->registry->getExtensionHooks();
if ( isset( $registeredHooks[$hook] ) ) {
foreach ( $registeredHooks[$hook] as $hookReference ) {
// Non-legacy hooks have handler attributes
$handlerObject = $hookReference['handler'];
$handlerSpec = $hookReference['handler'];
// Skip hooks that both acknowledge deprecation and are deprecated in core
$flaggedDeprecated = !empty( $hookReference['deprecated'] );
$deprecated = $deprecatedHooks->isHookDeprecated( $hook );
if ( $deprecated && $flaggedDeprecated ) {
continue;
}
$handlerName = $handlerObject['name'];
$handlerName = $handlerSpec['name'];
if ( !empty( $options['noServices'] ) && isset( $handlerSpec['services'] ) ) {
throw new UnexpectedValueException(
"The handler for the hook $hook registered in " .
"{$hookReference['extensionPath']} has a service dependency, " .
"but this hook does not allow it." );
}
if ( !isset( $this->handlersByName[$handlerName] ) ) {
$this->handlersByName[$handlerName] =
$this->objectFactory->createObject( $handlerObject );
$this->objectFactory->createObject( $handlerSpec );
}
$handlers[] = $this->handlersByName[$handlerName];
}

View File

@ -2391,14 +2391,15 @@ class HookRunner implements
public function onLoadExtensionSchemaUpdates( $updater ) {
return $this->container->run(
'LoadExtensionSchemaUpdates',
[ $updater ]
[ $updater ],
[ 'noServices' => true ]
);
}
public function onLocalFilePurgeThumbnails( $file, $archiveName ) {
public function onLocalFilePurgeThumbnails( $file, $archiveName, $urls ) {
return $this->container->run(
'LocalFilePurgeThumbnails',
[ $file, $archiveName ]
[ $file, $archiveName, $urls ]
);
}

View File

@ -102,7 +102,7 @@ class Hooks {
public static function getHandlers( $name ) {
$hookContainer = MediaWikiServices::getInstance()->getHookContainer();
$handlers = $hookContainer->getLegacyHandlers( $name );
$funcName = 'on' . str_replace( ':', '_', ucfirst( $name ) );
$funcName = 'on' . strtr( ucfirst( $name ), ':-', '__' );
foreach ( $hookContainer->getHandlers( $name ) as $obj ) {
$handlers[] = [ $obj, $funcName ];
}

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