diff --git a/composer.json b/composer.json index 82668f550e7..21de47c8399 100644 --- a/composer.json +++ b/composer.json @@ -97,11 +97,11 @@ "php-parallel-lint/php-console-highlighter": "1.0.0", "php-parallel-lint/php-parallel-lint": "1.3.2", "phpunit/phpunit": "9.5.28", - "psy/psysh": "^0.11.1", + "psy/psysh": "^0.12.3", "seld/jsonlint": "1.8.3", "wikimedia/alea": "1.0.0", "wikimedia/langconv": "^0.4.2", - "wikimedia/testing-access-wrapper": "~2.0", + "wikimedia/testing-access-wrapper": "^3.0.0", "wmde/hamcrest-html-matchers": "^1.0.0" }, "replace": { diff --git a/extensions/AbuseFilter b/extensions/AbuseFilter index 2b07d85d905..427b2cea1f0 160000 --- a/extensions/AbuseFilter +++ b/extensions/AbuseFilter @@ -1 +1 @@ -Subproject commit 2b07d85d9053df0df37a130679d6c26897162fea +Subproject commit 427b2cea1f05cc9b1d9110b977f42dcaa3681b20 diff --git a/extensions/CategoryTree b/extensions/CategoryTree index 29d038edfa5..9a98123c678 160000 --- a/extensions/CategoryTree +++ b/extensions/CategoryTree @@ -1 +1 @@ -Subproject commit 29d038edfa56881a5575b91767bbf2d1d7de85b0 +Subproject commit 9a98123c67803600d4654e727387688e3c327d14 diff --git a/extensions/Cite b/extensions/Cite index 788da9880de..fd17b89b599 160000 --- a/extensions/Cite +++ b/extensions/Cite @@ -1 +1 @@ -Subproject commit 788da9880de6dd5784300b9f82898613f98d44a2 +Subproject commit fd17b89b599c9fd79dea3d656ebf2f4e92e4c7da diff --git a/extensions/CiteThisPage b/extensions/CiteThisPage index edb6df0ccc0..13697ea253c 160000 --- a/extensions/CiteThisPage +++ b/extensions/CiteThisPage @@ -1 +1 @@ -Subproject commit edb6df0ccc0b2c43b5ad7827bef699d19a70095d +Subproject commit 13697ea253c5271f7f598afd4b7fe0bf077d21bf diff --git a/extensions/ConfirmEdit b/extensions/ConfirmEdit index 9ff45ad2ac9..52ed6625aa4 160000 --- a/extensions/ConfirmEdit +++ b/extensions/ConfirmEdit @@ -1 +1 @@ -Subproject commit 9ff45ad2ac995bf7a7b7125556aba2742910623b +Subproject commit 52ed6625aa43c55de7dc357f15b41dddbb268c3b diff --git a/extensions/DiscussionTools b/extensions/DiscussionTools index ff9743bac6f..67d3fc76d01 160000 --- a/extensions/DiscussionTools +++ b/extensions/DiscussionTools @@ -1 +1 @@ -Subproject commit ff9743bac6f4c00c4b104e1042d7a9bef33b64f4 +Subproject commit 67d3fc76d01e7b2a306925cf393f12dac4e80b12 diff --git a/extensions/Echo b/extensions/Echo index 2d32ed37466..80e3409d25a 160000 --- a/extensions/Echo +++ b/extensions/Echo @@ -1 +1 @@ -Subproject commit 2d32ed37466722cdadf8e8ae92c698c41580716e +Subproject commit 80e3409d25a31bda7612a20102ac34e1fa1ef6b8 diff --git a/extensions/Gadgets b/extensions/Gadgets index 67e29fb4401..5ae0f7e6925 160000 --- a/extensions/Gadgets +++ b/extensions/Gadgets @@ -1 +1 @@ -Subproject commit 67e29fb44014a63e6a29e372c1bf2e2d0107249a +Subproject commit 5ae0f7e6925aeab60c8e76b59bba142b21c42a16 diff --git a/extensions/InputBox b/extensions/InputBox index 8e963226301..47c68c2a8d3 160000 --- a/extensions/InputBox +++ b/extensions/InputBox @@ -1 +1 @@ -Subproject commit 8e96322630162455f8726eeb151ac9976ae664ea +Subproject commit 47c68c2a8d3c1682a8c4e9601c7f866175d38830 diff --git a/extensions/Interwiki b/extensions/Interwiki index 4ce35009bff..557809ee78c 160000 --- a/extensions/Interwiki +++ b/extensions/Interwiki @@ -1 +1 @@ -Subproject commit 4ce35009bffd0223c700239189d76ee8b6947b2b +Subproject commit 557809ee78c236c33382f8ddfb5db9977e48b7de diff --git a/extensions/Linter b/extensions/Linter index cc3796c5d16..3d685bea755 160000 --- a/extensions/Linter +++ b/extensions/Linter @@ -1 +1 @@ -Subproject commit cc3796c5d16aaedb6675e537446322f372c81a02 +Subproject commit 3d685bea755196b68e2ba2f8f3b301772677b137 diff --git a/extensions/LoginNotify b/extensions/LoginNotify index 0dd92d728c1..d3edf760525 160000 --- a/extensions/LoginNotify +++ b/extensions/LoginNotify @@ -1 +1 @@ -Subproject commit 0dd92d728c1a4956f5b4da78c68dcb20021d1eb3 +Subproject commit d3edf760525193e687868815f0e717bb487975c2 diff --git a/extensions/Math b/extensions/Math index b7a18b0ae27..004c73c19e6 160000 --- a/extensions/Math +++ b/extensions/Math @@ -1 +1 @@ -Subproject commit b7a18b0ae27ed406937720a74273f714bfb95c6d +Subproject commit 004c73c19e676c7b68d6f67c8494455e8fce5081 diff --git a/extensions/MultimediaViewer b/extensions/MultimediaViewer index 5e1305fdab6..768b949afce 160000 --- a/extensions/MultimediaViewer +++ b/extensions/MultimediaViewer @@ -1 +1 @@ -Subproject commit 5e1305fdab64a27d2a14d212261b0d7195c12b3e +Subproject commit 768b949afcec619a39becfb2249d103ba7c2752a diff --git a/extensions/Nuke b/extensions/Nuke index 74498ea565a..a711327cb47 160000 --- a/extensions/Nuke +++ b/extensions/Nuke @@ -1 +1 @@ -Subproject commit 74498ea565ad2cfa893fd852b377fa42cd4b5e2d +Subproject commit a711327cb475299ec6d39ff093407202616f7ab9 diff --git a/extensions/OATHAuth b/extensions/OATHAuth index 8c73d2f9ab5..baf1ab41439 160000 --- a/extensions/OATHAuth +++ b/extensions/OATHAuth @@ -1 +1 @@ -Subproject commit 8c73d2f9ab5504da3057db15a8ace27648e5c481 +Subproject commit baf1ab4143922c91f5ac6432f95b183bc7846372 diff --git a/extensions/PageImages b/extensions/PageImages index 223b9cd91a0..1c3378f4a06 160000 --- a/extensions/PageImages +++ b/extensions/PageImages @@ -1 +1 @@ -Subproject commit 223b9cd91a0263a4bc62e4c94c3dc117b515c76a +Subproject commit 1c3378f4a06be872731081084bf2fe0919445472 diff --git a/extensions/ParserFunctions b/extensions/ParserFunctions index c4076729c3b..ee176d62ced 160000 --- a/extensions/ParserFunctions +++ b/extensions/ParserFunctions @@ -1 +1 @@ -Subproject commit c4076729c3b66d502860a2159906f74492ec743c +Subproject commit ee176d62ced0f619581bc2e2b98876a23f0b099b diff --git a/extensions/ReplaceText b/extensions/ReplaceText index 0a8acab8cb1..4b1bce9bc26 160000 --- a/extensions/ReplaceText +++ b/extensions/ReplaceText @@ -1 +1 @@ -Subproject commit 0a8acab8cb11ffcf0825441160624ce898c8df0a +Subproject commit 4b1bce9bc269ea17aff27ffad6d9dd8d8c883264 diff --git a/extensions/Scribunto b/extensions/Scribunto index 825e1203b06..a2f4dff502f 160000 --- a/extensions/Scribunto +++ b/extensions/Scribunto @@ -1 +1 @@ -Subproject commit 825e1203b060850804885041dcd5d744f81a5df0 +Subproject commit a2f4dff502f54e1c0bd4c5b648d3789efb7837ab diff --git a/extensions/SpamBlacklist b/extensions/SpamBlacklist index ef451fcbe6d..f27a0239a6d 160000 --- a/extensions/SpamBlacklist +++ b/extensions/SpamBlacklist @@ -1 +1 @@ -Subproject commit ef451fcbe6d87989285f827502b85ae34e7ead66 +Subproject commit f27a0239a6d2d1371eec3bff17f45f415b932d3e diff --git a/extensions/TemplateData b/extensions/TemplateData index b285e621581..dcb2103b356 160000 --- a/extensions/TemplateData +++ b/extensions/TemplateData @@ -1 +1 @@ -Subproject commit b285e62158147fab19675560c2554aed1c091ed3 +Subproject commit dcb2103b356f6582337797af59bc8a40eb9bc740 diff --git a/extensions/Thanks b/extensions/Thanks index 68213163fdb..2dd5f414ddb 160000 --- a/extensions/Thanks +++ b/extensions/Thanks @@ -1 +1 @@ -Subproject commit 68213163fdb123a39ebd7ee68f0d360917f7c046 +Subproject commit 2dd5f414ddb5e1c62ec6fe6764e0f272c8d10b1e diff --git a/extensions/TitleBlacklist b/extensions/TitleBlacklist index d471999f410..fdde6ab3c61 160000 --- a/extensions/TitleBlacklist +++ b/extensions/TitleBlacklist @@ -1 +1 @@ -Subproject commit d471999f410fd2c53cfa8cd6174504b0786fac8d +Subproject commit fdde6ab3c616d27668e87ba6bda87c35ea06bd82 diff --git a/extensions/VisualEditor b/extensions/VisualEditor index b18dbbcdf29..42e1ad218bb 160000 --- a/extensions/VisualEditor +++ b/extensions/VisualEditor @@ -1 +1 @@ -Subproject commit b18dbbcdf296a9461d1cd7676739a4cbaf3dfc37 +Subproject commit 42e1ad218bb5e5520e0d6c0864bfe74725055a8a diff --git a/extensions/WikiEditor b/extensions/WikiEditor index 2b4b1ddd36a..f155f2d87ed 160000 --- a/extensions/WikiEditor +++ b/extensions/WikiEditor @@ -1 +1 @@ -Subproject commit 2b4b1ddd36ad2d52db893c446f8a27354a34be85 +Subproject commit f155f2d87eddd7c038c81d8be79528d27d069850 diff --git a/includes/Rest/i18n/hu.json b/includes/Rest/i18n/hu.json new file mode 100644 index 00000000000..5bd0bd66a02 --- /dev/null +++ b/includes/Rest/i18n/hu.json @@ -0,0 +1,30 @@ +{ + "@metadata": { + "authors": [ + "Dj" + ] + }, + "rest-prefix-mismatch": "A kért elérési út ($1) nem volt a REST API gyökérútvonalán ($2) belül.", + "rest-nonexistent-title-revision": "A megadott változat ($1) nem létezik a megadott lapon ($2)", + "rest-nonexistent-revision": "A megadott változat ($1) nem létezik", + "rest-nonexistent-user": "A megadott felhasználó ($1) nem létezik", + "rest-invalid-user": "A megadott felhasználónév ($1) érvénytelen", + "rest-unsupported-content-type": "Nem támogatott tartalomtípus: $1", + "rest-permission-denied-anon": "Névtelen felhasználó nem férhet hozzá", + "rest-permission-denied-title": "A felhasználónak nincs joga a cím olvasásához ($1)", + "rest-permission-denied-revision": "A felhasználónak nincs hozzáférése a kért változathoz ($1).", + "rest-resource-limit-exceeded": "Az erőforrás-korlátok túllépték a kérelem feldolgozását.", + "rest-pagehistory-incompatible-params": "Az „older_than” és „newer_than” paraméterek nem adhatók meg egyszerre", + "rest-pagehistory-param-range-error": "A változat azonosítójának nagyobbnak kell lennie 0-nál", + "rest-pagehistory-timestamp-error": "Nem sikerült lekérni az időbélyeget a megadott változathoz ($1)", + "rest-pagehistorycount-type-unrecognized": "A megadott számtípus ($1) érvénytelen", + "rest-pagehistorycount-parameters-invalid": "A megadott paraméterkombináció nem támogatott.", + "rest-compare-page-mismatch": "A megadott változatok különböző oldalakhoz tartoznak; összehasonlítás megtagadva.", + "rest-compare-permission-denied": "A felhasználónak nincs hozzáférése a kért változatokhoz", + "rest-compare-nonexistent": "A $1 paraméter által megadott változat nem létezik.", + "rest-compare-inaccessible": "A $1 paraméter által megadott változat nem érhető el nyilvánosan.", + "rest-compare-wikidiff2": "Ehhez a végponthoz a wikidiff2 1.9.0 vagy újabb verziója szükséges.", + "rest-pagehistorycount-too-many-revisions": "A megadott cím túl sok revíziót tartalmaz a szám lekéréséhez.", + "rest-search-error": "Hiba a keresési eredmények visszaküldésekor: $1", + "rest-page-source-type-error": "A kért lapforrás tartalomtípusa nem támogatott" +} diff --git a/includes/Status/Status.php b/includes/Status/Status.php index ec8ae240160..63a79e7d56b 100644 --- a/includes/Status/Status.php +++ b/includes/Status/Status.php @@ -85,6 +85,7 @@ class Status extends StatusValue { $result->successCount =& $sv->successCount; $result->failCount =& $sv->failCount; $result->success =& $sv->success; + $result->statusData =& $sv->statusData; return $result; } diff --git a/includes/api/ApiEditPage.php b/includes/api/ApiEditPage.php index c4b44a227d6..4ae4800c6cc 100644 --- a/includes/api/ApiEditPage.php +++ b/includes/api/ApiEditPage.php @@ -538,8 +538,8 @@ class ApiEditPage extends ApiBase { switch ( $statusValue ) { case EditPage::AS_HOOK_ERROR: case EditPage::AS_HOOK_ERROR_EXPECTED: - if ( isset( $status->apiHookResult ) ) { - $r = $status->apiHookResult; + if ( $status->statusData !== null ) { + $r = $status->statusData; $r['result'] = 'Failure'; $apiResult->addValue( null, $this->getModuleName(), $r ); return; diff --git a/includes/api/ApiResult.php b/includes/api/ApiResult.php index 5f3e4b306d6..c68927c5dc6 100644 --- a/includes/api/ApiResult.php +++ b/includes/api/ApiResult.php @@ -941,7 +941,28 @@ class ApiResult implements ApiSerializable { return empty( $transformTypes['AssocAsObject'] ) ? $data : (object)$data; case 'array': - ksort( $data ); + // Sort items in ascending order by key. Note that $data may contain a mix of number and string keys, + // for which the sorting behavior of krsort() with SORT_REGULAR is inconsistent between PHP versions. + // Given a comparison of a string key and a number key, PHP < 8.2 coerces the string key into a number + // (which yields zero if the string was non-numeric), and then performs the comparison, + // while PHP >= 8.2 makes the behavior consistent with stricter numeric comparisons introduced by + // PHP 8.0 in that if the string key is non-numeric, it converts the number key into a string + // and compares those two strings instead. We therefore use a custom comparison function + // implementing PHP >= 8.2 ordering semantics to ensure consistent ordering of items + // irrespective of the PHP version (T326480). + uksort( $data, static function ( $a, $b ): int { + // In a comparison of a number or numeric string with a non-numeric string, + // coerce both values into a string prior to comparing and compare the resulting strings. + // Note that PHP prior to 8.0 did not consider numeric strings with trailing whitespace + // to be numeric, so trim the inputs prior to the numeric checks to make the behavior + // consistent across PHP versions. + if ( is_numeric( trim( $a ) ) xor is_numeric( trim( $b ) ) ) { + return (string)$a <=> (string)$b; + } + + return $a <=> $b; + } ); + $data = array_values( $data ); $metadata[self::META_TYPE] = 'array'; // @phan-suppress-next-line PhanTypeMismatchReturnNullable Type mismatch on pass-by-ref args diff --git a/includes/api/i18n/be-tarask.json b/includes/api/i18n/be-tarask.json index 3f80e9a3e60..696dd695042 100644 --- a/includes/api/i18n/be-tarask.json +++ b/includes/api/i18n/be-tarask.json @@ -21,7 +21,10 @@ "apihelp-main-param-responselanginfo": "Уключыць мовы, выкарыстаныя для uselang і errorlang, у вынік.", "apihelp-main-param-origin": "Пры звароце да API з дапамогай міждамэннага AJAX-запыту (CORS), выстаўце парамэтру значэньне зыходнага дамэну. Ён мусіць быць уключаны ў кожны папярэдні запыт і такім чынам мусіць быць часткай URI-запыту (ня цела POST).\n\nДля аўтэнтыфікаваных запытаў ён мусіць супадаць з адной з крыніц у загалоўку Origin, павінна быць зададзена нешта кшталту https://en.wikipedia.org або https://meta.wikimedia.org. Калі парамэтар не супадае з загалоўкам Origin, будзе вернуты адказ з кодам памылкі 403. Калі парамэтар супадае з загалоўкам Origin і крыніца дазволеная, будуць выстаўленыя загалоўкі Access-Control-Allow-Origin і Access-Control-Allow-Credentials.\n\nДля неаўтэнтыфікаваных запытаў выстаўце значэньне *. Гэта прывядзе да выстаўленьня загалоўку Access-Control-Allow-Origin, але Access-Control-Allow-Credentials будзе мець значэньне false і ўсе зьвесткі пра карыстальніка будуць абмежаваныя.", "apihelp-main-param-uselang": "Мова для выкарыстаньня ў перакладах паведамленьняў. [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] з siprop=languages вяртае сьпіс кодаў мовы, або трэба вызначыць user, каб ужываць налады мовы цяперашняга карыстальніка, або вызначыць content, каб ужываць мову зьместу гэтай вікі.", + "apihelp-main-param-variant": "Варыянт мовы. Працуе толькі ў выпадку, калі базавая мова падтрымлівае пераўтварэньне варыянтаў.", "apihelp-main-param-errorformat": "Фармат для вываду тэксту папярэджаньняў і памылак", + "apihelp-main-paramvalue-errorformat-plaintext": "Вікітэкст з выдаленымі HTML-цэтлікамі і замененымі існасьцямі.", + "apihelp-main-paramvalue-errorformat-wikitext": "Неразабраны вікітэкст.", "apihelp-main-param-errorlang": "Мова для выкарыстаньня ў папярэджаньнях і памылках. [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] з siprop=languages вяртае сьпіс кодаў моваў, ці вызначце content для выкарыстаньня мовы зьместу гэтай вікі, ці вызначце uselang для выкарыстаньня таго ж значэньня, што і ў парамэтры uselang.", "apihelp-main-param-errorsuselocal": "Калі зададзена, тэксты памылак будуць выкарыстоўваць лякальна-наладжаныя паведамленьні з прасторы назваў {{ns:MediaWiki}}.", "apihelp-block-summary": "Блякаваньне ўдзельніка.", @@ -29,7 +32,7 @@ "apihelp-block-param-userid": "Замест гэтага пазначце $1user=#ID.", "apihelp-block-param-expiry": "Час заканчэньня. Можа быць адносным (напрыклад, 5 months або 2 weeks) ці абсалютным (напрыклад, 2014-09-18T12:34:56Z). Калі выстаўлены на infinite, indefinite ці never, блякаваньне будзе бестэрміновым.", "apihelp-block-param-reason": "Прычына блякаваньня.", - "apihelp-block-param-anononly": "Заблякаваць толькі ананімных удзельнікаў (напрыклад, забараніць ананімныя праўкі з гэтага IP-адрасу).", + "apihelp-block-param-anononly": "Заблякаваць толькі ананімных удзельнікаў (напрыклад, забараніць ананімныя праўкі з гэтага IP-адрасу, у тым ліку з часовых уліковых запісаў).", "apihelp-block-param-nocreate": "Забарона стварэньня рахункаў.", "apihelp-block-param-autoblock": "Аўтаматычна блякаваць апошні ўжыты IP-адрас, а таксама ўсе наступныя IP-адрасы, зь якіх будуць спробы ўваходу.", "apihelp-block-param-noemail": "Забараняе ўдзельніку дасылаць лісты электроннай пошты празь вікі (трэба мець права blockemail).", @@ -67,7 +70,7 @@ "apihelp-createaccount-summary": "Стварэньне новага рахунку ўдзельніка.", "apihelp-cspreport-param-reportonly": "Пазначыць як справаздачу па правіле маніторынгу, а не як прымусовае правіла", "apihelp-delete-summary": "Выдаліць старонку.", - "apihelp-delete-example-reason": "Выдаліць Галоўную старонку з пазначэньнем прычыны Падрыхтоўка да пераносу.", + "apihelp-delete-example-reason": "Выдаліць [[{{MediaWiki:Mainpage}}]] з пазначэньнем прычыны Падрыхтоўка да пераносу.", "apihelp-edit-summary": "Ствараць і правіць старонкі.", "apihelp-edit-param-sectiontitle": "Загаловак новага разьдзелу пры выкарыстаньні $1section=new.", "apihelp-edit-param-text": "Зьмест старонкі.", diff --git a/includes/api/i18n/fa.json b/includes/api/i18n/fa.json index 5bb2f5d02b6..bbe6b48b4a5 100644 --- a/includes/api/i18n/fa.json +++ b/includes/api/i18n/fa.json @@ -57,9 +57,9 @@ "apihelp-block-param-watchlistexpiry": "برچسب زمان منقضی‌شدن در فهرست پیگیری‌. برای رها کردن زمان منقضی‌شدن کنونی بدون تغییر، این پارامتر را به‌طور کامل حذف کنید.", "apihelp-block-param-tags": "برچسب‌های تغییر به‌منظور اعمال به مدخل سیاههٔ قطع دسترسی.", "apihelp-block-param-partial": "قطع دسترسی کاربر از صفحه‌ها یا فضاهای نام خاص به‌جای قطع دسترسی کلی از وبگاه.", - "apihelp-block-param-pagerestrictions": "فهرست عنوان‌ها برای قطع دسترسی ویرایشی کاربر در آن‌ها. تنها زمانی قابل اعمال است که partial روی true تنظیم شده‌باشد.", - "apihelp-block-param-namespacerestrictions": "فهرست فضاهای نام برای قطع دسترسی ویرایشی کاربر در آن‌ها. تنها زمانی قابل اعمال است که partial روی true تنظیم شده‌باشد.", - "apihelp-block-param-actionrestrictions": "فهرست عمل‌ها برای قطع دسترسی کاربر از انجام آن‌ها. تنها در صورتی قابل اعمال است که partial روی true تنظیم شده‌باشد.", + "apihelp-block-param-pagerestrictions": "فهرست عنوان‌ها برای قطع دسترسی ویرایشی کاربر در آن‌ها. تنها زمانی قابل اعمال است که partial روی true تنظیم شده باشد.", + "apihelp-block-param-namespacerestrictions": "فهرست فضاهای نام برای قطع دسترسی ویرایشی کاربر در آن‌ها. تنها زمانی قابل اعمال است که partial روی true تنظیم شده باشد.", + "apihelp-block-param-actionrestrictions": "فهرست عمل‌ها برای قطع دسترسی کاربر از انجام آن‌ها. تنها در صورتی قابل اعمال است که partial روی true تنظیم شده باشد.", "apihelp-block-example-ip-simple": "قطع دسترسی آی‌پی ۱۹۲٫۰٫۲٫۵ برای سه روز به‌همراه دلیل.", "apihelp-block-example-user-complex": "بستن کاربر خرابکار به شکل نامحدود به‌همراه دلیل، همچنين جلوگيری از ايجاد حساب جديد و ارسال ايميل.", "apihelp-changeauthenticationdata-summary": "تغییر دادۀ اصالت‌سنجی برای کاربر کنونی", @@ -113,9 +113,9 @@ "apihelp-compare-paramvalue-prop-rel": "شناسه‌های نسخهٔ پیشین «from» و پس از «to» در صورت وجود.", "apihelp-compare-paramvalue-prop-ids": "شناسه‌های نسخه و صفحه برای نسخه‌های «from» و «to».", "apihelp-compare-paramvalue-prop-title": "عنوان صفحه‌های نسخه‌های «from» و «to».", - "apihelp-compare-paramvalue-prop-user": "نام و شناسهٔ کاربر اعمال‌کنندهٔ نسخه‌های «from» و «to». اگر نسخهٔ کاربر حذف شده‌باشد، یک ویژگی fromuserhidden یا touserhidden برگردانده خواهد شد.", - "apihelp-compare-paramvalue-prop-comment": "خلاصهٔ نسخه‌های «from» و «to». در صورتی که نسخهٔ مرتبط با خلاصه حذف شده‌باشد، یک ویژگی fromcommenthidden یا tocommenthidden برگردانده خواهد شد.", - "apihelp-compare-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شدهٔ نسخه‌های «form» و «to». در صورتی که نسخهٔ مرتبط با خلاصه حذف شده‌باشد، یک ویژگی fromcommenthidden یا tocommenthidden برگردانده خواهد شد.", + "apihelp-compare-paramvalue-prop-user": "نام و شناسهٔ کاربر اعمال‌کنندهٔ نسخه‌های «from» و «to». اگر نسخهٔ کاربر حذف شده باشد، یک ویژگی fromuserhidden یا touserhidden برگردانده خواهد شد.", + "apihelp-compare-paramvalue-prop-comment": "خلاصهٔ نسخه‌های «from» و «to». در صورتی که نسخهٔ مرتبط با خلاصه حذف شده باشد، یک ویژگی fromcommenthidden یا tocommenthidden برگردانده خواهد شد.", + "apihelp-compare-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شدهٔ نسخه‌های «form» و «to». در صورتی که نسخهٔ مرتبط با خلاصه حذف شده باشد، یک ویژگی fromcommenthidden یا tocommenthidden برگردانده خواهد شد.", "apihelp-compare-paramvalue-prop-size": "اندازهٔ نسخه‌های «from» و «to».", "apihelp-compare-param-slots": "برگرداندن تفاوت‌های واحد برای این شکاف‌ها، به‌جای یک تفاوت ترکیب‌شده برای تمامی شکاف‌ها.", "apihelp-compare-example-1": "ایجاد تفاوت بین نسخه 1 و 2", @@ -361,7 +361,7 @@ "apihelp-query+filearchive-paramvalue-prop-size": "اندازهٔ تصویر به بایت و ارتفاع، عرض و شمار صفحه‌های تصویر (در صورت وجود) را اضافه می‌کند.", "apihelp-query+fileusage-paramvalue-prop-title": "عنوان هر صفحه.", "apihelp-query+fileusage-param-limit": "تعدادی که باید بازگردانده شود.", - "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "تجزیهٔ خلاصهٔ نسخه. در صورتی که نسخهٔ مرتبط با خلاصه حذف شده‌باشد، یک ویژگی commenthidden برگردانده خواهد شد.", + "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "تجزیهٔ خلاصهٔ نسخه. در صورتی که نسخهٔ مرتبط با خلاصه حذف شده باشد، یک ویژگی commenthidden برگردانده خواهد شد.", "apihelp-query+imageinfo-paramvalue-prop-size": "اندازهٔ تصویر به بایت و ارتفاع، عرض و شمار صفحه‌های تصویر (در صورت وجود) را اضافه می‌کند.", "apihelp-query+imageinfo-paramvalue-prop-dimensions": "نام مستعار برای size", "apihelp-query+imageinfo-paramvalue-prop-sha1": "افزودن SHA-1 hash برای پرونده", @@ -388,7 +388,7 @@ "apihelp-query+logevents-summary": "دریافت رویدادها از سیاهه‌ها.", "apihelp-query+logevents-param-prop": "خصوصیتی که باید گرفته شود.", "apihelp-query+logevents-paramvalue-prop-ids": "افزودن شناسه سیاهه رویداد.", - "apihelp-query+logevents-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شده را به مورد سیاهه اضافه می‌کند. اگر نسخهٔ مرتبط با خلاصه حذف شده‌باشد، یک ویژگی commenthidden برگردانده خواهد شد.", + "apihelp-query+logevents-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شده را به مورد سیاهه اضافه می‌کند. اگر نسخهٔ مرتبط با خلاصه حذف شده باشد، یک ویژگی commenthidden برگردانده خواهد شد.", "apihelp-query+pageswithprop-paramvalue-prop-ids": "افزودن شناسه صفحه", "apihelp-query+pageswithprop-param-dir": "جهت مرتب شدن", "apihelp-query+prefixsearch-param-search": "جستجوی رشته", @@ -408,7 +408,7 @@ "apihelp-query+random-example-generator": "بازگرداندن اطلاعات صفحه دربارهٔ دو صفحهٔ تصادفی از فضای نام اصلی", "apihelp-query+recentchanges-param-start": "برچسب زمانی برای آغاز شمارش از.", "apihelp-query+recentchanges-param-end": "برچسب زمانی برای پایان شمارش.", - "apihelp-query+recentchanges-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شدهٔ ویرایش را اضافه می‌کند. در صورتی که نسخهٔ مرتبط با خلاصه حذف شده‌باشد، یک ویژگی commenthidden برگردانده خواهد شد.", + "apihelp-query+recentchanges-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شدهٔ ویرایش را اضافه می‌کند. در صورتی که نسخهٔ مرتبط با خلاصه حذف شده باشد، یک ویژگی commenthidden برگردانده خواهد شد.", "apihelp-query+recentchanges-paramvalue-prop-flags": "افزودن برچسب برای ویرایش.", "apihelp-query+recentchanges-paramvalue-prop-timestamp": "افزودن زمان ویرایش.", "apihelp-query+redirects-paramvalue-prop-title": "عنوان هر تغییرمسیر.", @@ -425,7 +425,7 @@ "apihelp-query+tags-param-prop": "خصوصیتی که باید گرفته شود:", "apihelp-query+tags-paramvalue-prop-name": "افزودن نام برچسب.", "apihelp-query+transcludedin-paramvalue-prop-title": "عنوان هر صفحه.", - "apihelp-query+usercontribs-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شدهٔ ویرایش را اضافه می‌کند. در صورتی که نسخهٔ مرتبط با خلاصه حذف شده‌باشد، یک ویژگی commenthidden برگردانده خواهد شد.", + "apihelp-query+usercontribs-paramvalue-prop-parsedcomment": "خلاصهٔ تجزیه‌شدهٔ ویرایش را اضافه می‌کند. در صورتی که نسخهٔ مرتبط با خلاصه حذف شده باشد، یک ویژگی commenthidden برگردانده خواهد شد.", "apihelp-query+watchlist-paramvalue-prop-tags": "برچسب‌‌های یک مدخل را لیست می‌کند", "apihelp-query+watchlist-paramvalue-type-log": "مدخل‌های سیاهه.", "apihelp-rollback-param-title": "عنوان صفحه برای واگردانی. نمی‌تواند همزمان با $1pageid استفاده شود.", @@ -464,7 +464,7 @@ "apihelp-json-summary": "خروجی داده در قالب جی‌سان.", "apihelp-json-param-callback": "اگر مشخص شود خروجی را در فراخوانی تابع مورد نظر بسته‌بندی می‌کند. برای حفظ امنیت، تمام داده‌های اختصاصی کاربران محصور خواهد شد.", "apihelp-json-param-utf8": "اگر مشخص شود، بیشتر (اما نه همهٔ) نویسه‌های غیر ASCII را به‌جای جاگزینی آن‌ها با توالی‌های رهای هگزادسیمال، به‌عنوان نویسهٔ UTF-8 رمزنگاری خواهد کرد. این گزینه در صورتی که formatversion برابر با 1 نباشد، به‌طور پیش‌فرض فعال است.", - "apihelp-json-param-ascii": "اگش مشخص شده‌باشد، تمام نویسه‌های غیر ASCII را با استفاده از توالی‌های رهای هگزادسیمال رمزنگاری خواهد کرد. هنگامی که formatversion برابر با 1 باشد، به‌طور پیش‌فرض فعال است.", + "apihelp-json-param-ascii": "اگش مشخص شده باشد، تمام نویسه‌های غیر ASCII را با استفاده از توالی‌های رهای هگزادسیمال رمزنگاری خواهد کرد. هنگامی که formatversion برابر با 1 باشد، به‌طور پیش‌فرض فعال است.", "apihelp-json-param-formatversion": "قالب‌بندی خروجی", "apihelp-jsonfm-summary": "خروجی داده در قالب جی‌سان (چاپ زیبا در اچ‌تی‌ام‌ال).", "apihelp-none-summary": "بیرون‌ریزی هیچ.", diff --git a/includes/api/i18n/nb.json b/includes/api/i18n/nb.json index 6dcf8d70925..6409c2b9657 100644 --- a/includes/api/i18n/nb.json +++ b/includes/api/i18n/nb.json @@ -1522,7 +1522,7 @@ "apihelp-userrights-summary": "Endre en brukers gruppemedlemskap.", "apihelp-userrights-param-user": "Bruker.", "apihelp-userrights-param-userid": "Angi $1user=#ID i stedet.", - "apihelp-userrights-param-add": "Legg til brukeren i disse gruppene, eller hvis han/hun allerede er medlem, oppdater utløpsdatoen for medlemskapet deres i den gruppa.", + "apihelp-userrights-param-add": "Legg til brukeren i disse gruppene, eller hvis hen allerede er medlem, oppdater utløpsdatoen for medlemskapet hens i den gruppa.", "apihelp-userrights-param-expiry": "Utløpstidsstempler. Kan være relative (f.eks. 5 months eller 2 weeks) eller absolutte (f.eks. 2014-09-18-T12:34:56Z). Hvis bare ett tidsstempel settes blir det brukt for alle gruppene som sendes i parameteren $1add. Bruk infinite, indefinite, infinity eller never for varig gruppemedlemskap.", "apihelp-userrights-param-remove": "Fjern brukeren fra disse gruppene.", "apihelp-userrights-param-reason": "Årsak for endringen.", diff --git a/includes/api/i18n/ru.json b/includes/api/i18n/ru.json index fb9070cedb1..d47dcf7c602 100644 --- a/includes/api/i18n/ru.json +++ b/includes/api/i18n/ru.json @@ -58,7 +58,8 @@ "Краснорядцева Елена", "Лилиә", "Марио", - "Nikokrat" + "Nikokrat", + "Dirruw'o" ] }, "apihelp-main-extended-description": "
\n* [[mw:Special:MyLanguage/API:Main_page|Документация]]\n* [[mw:Special:MyLanguage/API:Etiquette|Этикет и руководство по использованию]]\n* [[mw:Special:MyLanguage/API:FAQ|ЧЗВ]]\n* [https://lists.wikimedia.org/postorius/lists/mediawiki-api.lists.wikimedia.org/ Почтовая рассылка]\n* [https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/ Новости API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Ошибки и запросы]\n
\nСтатус: MediaWiki API — зрелый и стабильный интерфейс, активно поддерживаемый и улучшаемый. Мы стараемся избегать ломающих изменений, однако изредка они могут быть необходимы. Подпишитесь на [https://lists.wikimedia.org/hyperkitty/list/mediawiki-api-announce@lists.wikimedia.org/ почтовую рассылку mediawiki-api-announce], чтобы быть в курсе обновлений.\n\nОшибочные запросы: Если API получает запрос с ошибкой, вернётся заголовок HTTP с ключом «MediaWiki-API-Error», после чего значение заголовка и код ошибки будут отправлены обратно и установлены в то же значение. Более подробную информацию см. [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Ошибки и предупреждения]].\n\n

Тестирование: для удобства тестирования API-запросов, см. [[Special:ApiSandbox]].

", @@ -503,7 +504,7 @@ "apihelp-query-param-exportschema": "При экспорте ориентироваться на заданную версию формата XML дампа. Может использоваться только вместе с $1export.", "apihelp-query-param-iwurl": "Возвращать ли полную ссылку, если названием является интервики-ссылка.", "apihelp-query-param-rawcontinue": "Вернуть сырые данные в query-continue для продолжения.", - "apihelp-query-example-revisions": "Получить [[Special:ApiHelp/query+siteinfo|site info]] и [[Special:ApiHelp/query+revisions|последнее изменение]] для Main Page.", + "apihelp-query-example-revisions": "Получить [[Special:ApiHelp/query+siteinfo|информацию о сайте]] и [[Special:ApiHelp/query+revisions|версии]] для [[{{MediaWiki:Mainpage}}]].", "apihelp-query-example-allpages": "Получить последнее изменение для страниц, начиная с API/.", "apihelp-query+allcategories-summary": "Перечисление всех категорий.", "apihelp-query+allcategories-param-from": "Категория, с которой начать перечисление.", @@ -807,7 +808,7 @@ "apihelp-query+deletedrevs-paramvalue-prop-content": "Добавляет содержимое правки.", "apihelp-query+deletedrevs-paramvalue-prop-token": "Возвращает токен редактирования.", "apihelp-query+deletedrevs-paramvalue-prop-tags": "Метки правки.", - "apihelp-query+deletedrevs-example-mode1": "Список последних удалённых правок страниц Main Page и Talk:Main Page с содержимым (режим 1).", + "apihelp-query+deletedrevs-example-mode1": "Список последних удалённых правок страниц [[{{MediaWiki:Mainpage}}]] и Talk:Main Page с содержимым (режим 1).", "apihelp-query+deletedrevs-example-mode2": "Список последних 50 удалённых правок участника Bob (режим 2).", "apihelp-query+deletedrevs-example-mode3-main": "Список последних 50 удалённых правок в основном пространстве имён (режим 3)", "apihelp-query+deletedrevs-example-mode3-talk": "Список последних 50 удалённых страниц в пространстве имён {{ns:talk}} (режим 3).", @@ -832,7 +833,7 @@ "apihelp-query+extlinks-param-protocol": "Протокол ссылки. Если оставлено пустым, а $1query задано, будут найдены ссылки с протоколами http и https. Оставьте пустым и $1query, и данный параметр, чтобы получить список всех внешних ссылок.", "apihelp-query+extlinks-param-query": "Поисковый запрос без протокола. Полезно для проверки, содержит ли определённая страница определённую внешнюю ссылку.", "apihelp-query+extlinks-param-expandurl": "Раскрыть зависимые от протокола ссылки с каноничным протоколом.", - "apihelp-query+extlinks-example-simple": "Получить внешние ссылки на странице Main Page.", + "apihelp-query+extlinks-example-simple": "Получить внешние ссылки на странице [[{{MediaWiki:Mainpage}}]].", "apihelp-query+exturlusage-summary": "Перечислить страницы, содержащие данную ссылку.", "apihelp-query+exturlusage-param-prop": "Какую информацию включить:", "apihelp-query+exturlusage-paramvalue-prop-ids": "Добавляет идентификатор страницы.", @@ -925,8 +926,8 @@ "apihelp-query+images-param-limit": "Сколько файлов вернуть.", "apihelp-query+images-param-images": "Перечислять только данные файлы. Полезно для проверки, включает ли конкретная страница конкретный файл.", "apihelp-query+images-param-dir": "Порядок перечисления.", - "apihelp-query+images-example-simple": "Получить список файлов, использованных на [[Main Page]].", - "apihelp-query+images-example-generator": "Получить информацию о всех файлах, использованных на [[Main Page]].", + "apihelp-query+images-example-simple": "Получить список файлов, использованных на странице [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+images-example-generator": "Получить информацию о всех файлах, использованных на странице [[{{MediaWiki:Mainpage}}]].", "apihelp-query+imageusage-summary": "Поиск всех страниц, использующих данный файл.", "apihelp-query+imageusage-param-title": "Искомое название. Не может использоваться вместе с $1pageid.", "apihelp-query+imageusage-param-pageid": "Искомый идентификатор страницы. Не может быть использован одновременно с $1title.", @@ -953,8 +954,8 @@ "apihelp-query+info-paramvalue-prop-varianttitles": "Выдаёт отображаемый заголовок во всех вариантах языка контента сайта.", "apihelp-query+info-param-testactions": "Проверить, может ли текущий участник провести указанные действия над страницей.", "apihelp-query+info-paramvalue-testactionsdetail-boolean": "Возвращает логическое значение для каждого действия.", - "apihelp-query+info-example-simple": "Получить информацию о странице Main Page.", - "apihelp-query+info-example-protection": "Получить основную информацию и информацию о защите страницы Main Page.", + "apihelp-query+info-example-simple": "Получить информацию о странице [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+info-example-protection": "Получить основную информацию и информацию о защите страницы [[{{MediaWiki:Mainpage}}]].", "apihelp-query+iwbacklinks-summary": "Поиск всех страниц, ссылающихся на заданную интервики ссылку.", "apihelp-query+iwbacklinks-extended-description": "Может быть использована для поиска всех ссылок с префиксом, или всех ссылок на название (с заданным префиксом). Неиспользование никакого параметра фактически означает «все интервики-ссылки».", "apihelp-query+iwbacklinks-param-prefix": "Префикс интервики.", @@ -974,7 +975,7 @@ "apihelp-query+iwlinks-param-prefix": "Вернуть только интервики с этим префиксом.", "apihelp-query+iwlinks-param-title": "Искомая интервики-ссылка. Должна быть использована вместе с $1prefix.", "apihelp-query+iwlinks-param-dir": "Порядок перечисления.", - "apihelp-query+iwlinks-example-simple": "Получить интервики-ссылки со страницы Main Page.", + "apihelp-query+iwlinks-example-simple": "Получить интервики-ссылки со страницы [[{{MediaWiki:Mainpage}}]].", "apihelp-query+langbacklinks-summary": "Поиск всех страниц, ссылающихся на заданную языковую ссылку.", "apihelp-query+langbacklinks-extended-description": "Может быть использовано для поиска всех ссылок с языковым кодом, или всех ссылок на страницу с заданным языком. Неиспользование этого параметра фактически вернёт все языковые ссылки.\n\nОбратите внимания, что ссылки, добавляемые расширениями, могут не рассматриваться.", "apihelp-query+langbacklinks-param-lang": "Язык ссылки.", @@ -997,18 +998,20 @@ "apihelp-query+langlinks-param-title": "Искомая ссылка. Должна быть использована вместе с $1lang.", "apihelp-query+langlinks-param-dir": "Порядок перечисления.", "apihelp-query+langlinks-param-inlanguagecode": "Языковой код для локализованных названий языков.", - "apihelp-query+langlinks-example-simple": "Получить межъязыковые ссылки со страницы Main Page.", + "apihelp-query+langlinks-example-simple": "Получить межъязыковые ссылки со страницы [[{{MediaWiki:Mainpage}}]].", "apihelp-query+languageinfo-summary": "Возвращает информацию о доступных языках.", "apihelp-query+languageinfo-param-prop": "Какую информацию получить для каждого языка.", "apihelp-query+languageinfo-paramvalue-prop-dir": "Направление написания языка (ltr или rtl).", + "apihelp-query+languageinfo-example-simple": "Получить языковые коды всех поддерживаемых языков.", + "apihelp-query+languageinfo-example-autonym-name-de": "Получить автонимы и немецкие названия всех поддерживаемых языков.", "apihelp-query+links-summary": "Возвращает все ссылки с данных страниц.", "apihelp-query+links-param-namespace": "Показывать ссылки только на данные пространства имён.", "apihelp-query+links-param-limit": "Сколько ссылок вернуть.", "apihelp-query+links-param-titles": "Перечислять только данные ссылки. Полезно для проверки, содержит ли конкретная страница конкретную ссылку.", "apihelp-query+links-param-dir": "Порядок перечисления.", - "apihelp-query+links-example-simple": "Получить ссылки со страницы Main Page.", - "apihelp-query+links-example-generator": "Получить информацию о страницах, на которые ссылается Main Page.", - "apihelp-query+links-example-namespaces": "Получить ссылки с Main Page на пространства имён {{ns:user}} и {{ns:template}}.", + "apihelp-query+links-example-simple": "Получить ссылки со страницы [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+links-example-generator": "Получить информацию о страницах, на которые ссылается [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+links-example-namespaces": "Получить ссылки со страницы [[{{MediaWiki:Mainpage}}]] на пространства имён {{ns:user}} и {{ns:template}}.", "apihelp-query+linkshere-summary": "Поиск всех страниц, ссылающихся на данную.", "apihelp-query+linkshere-param-prop": "Какие свойства получить:", "apihelp-query+linkshere-paramvalue-prop-pageid": "Идентификатор каждой страницы.", @@ -1019,8 +1022,8 @@ "apihelp-query+linkshere-param-show": "Показать только элементы, соответствующие этим критериям:", "apihelp-query+linkshere-paramvalue-show-redirect": "Показать только перенаправления.", "apihelp-query+linkshere-paramvalue-show-!redirect": "Показать только не перенаправления.", - "apihelp-query+linkshere-example-simple": "Получить список страниц, ссылающихся на [[Main Page]].", - "apihelp-query+linkshere-example-generator": "Получить информацию о страницах, ссылающихся на [[Main Page]].", + "apihelp-query+linkshere-example-simple": "Получить список страниц, ссылающихся на [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+linkshere-example-generator": "Получить информацию о страницах, ссылающихся на [[{{MediaWiki:Mainpage}}]].", "apihelp-query+logevents-summary": "Получение записей журналов.", "apihelp-query+logevents-param-prop": "Какие свойства получить:", "apihelp-query+logevents-paramvalue-prop-ids": "Добавляет идентификатор записи журнала.", @@ -1049,7 +1052,7 @@ "apihelp-query+pagepropnames-example-simple": "Получить первые 10 названий свойств.", "apihelp-query+pageprops-summary": "Получение различных свойств страниц, определённых в содержании страницы.", "apihelp-query+pageprops-param-prop": "Перечислить только эти свойства страницы ([[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]] возвращает список используемых названий свойств). Полезно для проверки, используют ли страницы конкретные свойства.", - "apihelp-query+pageprops-example-simple": "Получить свойства страниц Main Page и MediaWiki.", + "apihelp-query+pageprops-example-simple": "Получить свойства страниц {{MediaWiki:Mainpage}} и MediaWiki.", "apihelp-query+pageswithprop-summary": "Перечисление всех страниц, использующих заданное свойство.", "apihelp-query+pageswithprop-param-propname": "Искомое свойство ([[Special:ApiHelp/query+pagepropnames|action=query&list=pagepropnames]] возвращает список используемых названий свойств).", "apihelp-query+pageswithprop-param-prop": "Какую информацию включить:", @@ -1137,8 +1140,8 @@ "apihelp-query+redirects-param-show": "Показывать только элементы, удовлетворяющие данным критериям:", "apihelp-query+redirects-paramvalue-show-fragment": "Показывать только перенаправления с фрагментами.", "apihelp-query+redirects-paramvalue-show-!fragment": "Показывать только перенаправления без фрагментов.", - "apihelp-query+redirects-example-simple": "Получить список перенаправлений на [[Main Page]].", - "apihelp-query+redirects-example-generator": "Получить информацию о всех перенаправлениях на [[Main Page]].", + "apihelp-query+redirects-example-simple": "Получить список перенаправлений на [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+redirects-example-generator": "Получить информацию о всех перенаправлениях на [[{{MediaWiki:Mainpage}}]].", "apihelp-query+revisions-summary": "Получение информации о версии страницы.", "apihelp-query+revisions-extended-description": "Может использоваться в трёх режимах:\n# Получение данных о наборе страниц (последних версий) с помощью передачи названий или идентификаторов страниц.\n# Получение версий одной данной страницы, используя названия или идентификаторы с началом, концом или лимитом.\n# Получение данных о наборе версий, передаваемых с помощью их идентификаторов.", "apihelp-query+revisions-paraminfo-singlepageonly": "Может быть использовано только с одной страницей (режим №2).", @@ -1149,7 +1152,7 @@ "apihelp-query+revisions-param-user": "Только версии данного участника.", "apihelp-query+revisions-param-excludeuser": "Исключить версии данного участника.", "apihelp-query+revisions-param-tag": "Только версии с заданной меткой.", - "apihelp-query+revisions-example-content": "Получить данные с содержимым для последних версий страниц API и Main Page.", + "apihelp-query+revisions-example-content": "Получить данные с содержимым для последних версий страниц API и [[{{MediaWiki:Mainpage}}]].", "apihelp-query+revisions-example-last5": "Получить последние 5 версий [[{{MediaWiki:Mainpage}}]].", "apihelp-query+revisions-example-first5": "Получить первые 5 версий [[{{MediaWiki:Mainpage}}]].", "apihelp-query+revisions-example-first5-after": "Получить первые 5 версий [[{{MediaWiki:Mainpage}}]], созданных после 2006-05-01.", @@ -1261,9 +1264,9 @@ "apihelp-query+templates-param-limit": "Сколько шаблонов вернуть.", "apihelp-query+templates-param-templates": "Перечислять только эти шаблоны. Полезно для проверки, включает ли конкретная страница конкретный шаблон.", "apihelp-query+templates-param-dir": "Порядок перечисления.", - "apihelp-query+templates-example-simple": "Получить список шаблонов, использующихся на Main Page.", - "apihelp-query+templates-example-generator": "Получить информацию о шаблонах, использующихся на Main Page.", - "apihelp-query+templates-example-namespaces": "Получить страницы из пространств имён {{ns:user}} и {{ns:template}}, включённые в Main Page.", + "apihelp-query+templates-example-simple": "Получить список шаблонов, использующихся на странице [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+templates-example-generator": "Получить информацию о шаблонах, использующихся на странице [[{{MediaWiki:Mainpage}}]].", + "apihelp-query+templates-example-namespaces": "Получить страницы из пространств имён {{ns:user}} и {{ns:template}}, включённые в страницу [[{{MediaWiki:Mainpage}}]].", "apihelp-query+tokens-summary": "Получение токенов для действий, связанных с редактированием данных.", "apihelp-query+tokens-param-type": "Типы запрашиваемых токенов.", "apihelp-query+tokens-example-simple": "Получить csrf-токен (по умолчанию).", @@ -1413,7 +1416,7 @@ "apihelp-revisiondelete-param-suppress": "Следует ли скрыть данные от администраторов так же, как и от остальных участников.", "apihelp-revisiondelete-param-reason": "Причина удаления или восстановления.", "apihelp-revisiondelete-param-tags": "Изменить метки записи в журнале удалений.", - "apihelp-revisiondelete-example-revision": "Скрыть содержимое версии 12345 страницы Main Page.", + "apihelp-revisiondelete-example-revision": "Скрыть содержимое версии 12345 страницы [[{{MediaWiki:Mainpage}}]].", "apihelp-revisiondelete-example-log": "Скрыть все данные записи 67890 в журнале с причиной BLP violation.", "apihelp-rollback-summary": "Отмена последней правки на странице.", "apihelp-rollback-extended-description": "Если последний редактировавший страницу участник сделал несколько правок подряд, все они будут откачены.", @@ -1424,8 +1427,8 @@ "apihelp-rollback-param-summary": "Пользовательское описание правки. При пустом значении будет использовано стандартное описание.", "apihelp-rollback-param-markbot": "Отметить откатываемые правки и откат как правки бота.", "apihelp-rollback-param-watchlist": "Безусловно добавить или удалить страницу из списка наблюдения текущего участника, использовать настройки (игнорируются для пользователей-ботов) или не менять наблюдение.", - "apihelp-rollback-example-simple": "Откатить последние изменения страницы Main Page участника Example.", - "apihelp-rollback-example-summary": "Откатить последние правки страницы Main Page анонимного участника 192.0.2.5 с описанием Reverting vandalism, и отметить эти правки и их откат как правки ботов.", + "apihelp-rollback-example-simple": "Откатить последние правки страницы [[{{MediaWiki:Mainpage}}]] участника Example.", + "apihelp-rollback-example-summary": "Откатить последние правки страницы [[{{MediaWiki:Mainpage}}]] анонимного участника 192.0.2.5 с описанием Reverting vandalism, и отметить эти правки и их откат как правки ботов.", "apihelp-rsd-summary": "Экспорт схемы RSD (Really Simple Discovery).", "apihelp-rsd-example-simple": "Экспортировать схему RSD.", "apihelp-setnotificationtimestamp-summary": "Обновление временной метки уведомления для отслеживаемых страниц.", @@ -1435,8 +1438,8 @@ "apihelp-setnotificationtimestamp-param-torevid": "Версия, к временной метке которой приравнять временную метку уведомления (только для одной страницы).", "apihelp-setnotificationtimestamp-param-newerthanrevid": "Версия, новее которой сделать временную метку уведомления (только для одной страницы).", "apihelp-setnotificationtimestamp-example-all": "Сбросить статус уведомления для всего списка наблюдения.", - "apihelp-setnotificationtimestamp-example-page": "Сбросить статус уведомления для Main page.", - "apihelp-setnotificationtimestamp-example-pagetimestamp": "Установить временную метку уведомления для страницы Main page таким образом, чтобы сделать все правки с 1 января 2012 года непросмотренными.", + "apihelp-setnotificationtimestamp-example-page": "Сбросить статус уведомления для [[{{MediaWiki:Mainpage}}]].", + "apihelp-setnotificationtimestamp-example-pagetimestamp": "Установить временную метку уведомления для страницы [[{{MediaWiki:Mainpage}}]] таким образом, чтобы сделать все правки с 1 января 2012 года непросмотренными.", "apihelp-setnotificationtimestamp-example-allpages": "Сбросить статус уведомления для страниц из пространства имён {{ns:user}}.", "apihelp-setpagelanguage-summary": "Изменить язык страницы.", "apihelp-setpagelanguage-extended-description-disabled": "Изменение языка страницы не разрешено в этой вики.\n\nАктивируйте [[mw:Special:MyLanguage/Manual:$wgPageLanguageUseDB|$wgPageLanguageUseDB]] для использования этого действия.", @@ -1445,7 +1448,7 @@ "apihelp-setpagelanguage-param-lang": "Код нового языка. Используйте default для смены на язык содержимого по умолчанию для этой вики.", "apihelp-setpagelanguage-param-reason": "Причина изменения.", "apihelp-setpagelanguage-param-tags": "Изменить метки записей в журнале, возникающих в результате этого действия.", - "apihelp-setpagelanguage-example-language": "Изменить язык Main Page на баскский.", + "apihelp-setpagelanguage-example-language": "Изменить язык страницы [[{{MediaWiki:Mainpage}}]] на баскский.", "apihelp-setpagelanguage-example-default": "Изменить язык страницы с идентификатором 123 на язык по умолчанию.", "apihelp-stashedit-summary": "Подготовка правки в общем кэше.", "apihelp-stashedit-extended-description": "Предназначено для использования через AJAX из формы редактирования для увеличения производительности сохранения страницы.", @@ -1484,8 +1487,8 @@ "apihelp-undelete-param-timestamps": "Временные метки восстанавливаемых версий. Если и $1timestamps, и $1fileids пустые, все версии будут восстановлены.", "apihelp-undelete-param-fileids": "Идентификаторы восстанавливаемых файловых версий. Если и $1timestamps, и $1fileids пустые, все версии будут восстановлены.", "apihelp-undelete-param-watchlist": "Безусловно добавить или удалить страницу из списка наблюдения текущего участника, использовать настройки (игнорируются для пользователей-ботов) или не менять наблюдение.", - "apihelp-undelete-example-page": "Восстановить страницу Main Page.", - "apihelp-undelete-example-revisions": "Восстановить две версии страницы Main Page.", + "apihelp-undelete-example-page": "Восстановить страницу [[{{MediaWiki:Mainpage}}]].", + "apihelp-undelete-example-revisions": "Восстановить две версии страницы [[{{MediaWiki:Mainpage}}]].", "apihelp-unlinkaccount-summary": "Удаление связанного стороннего аккаунта с текущим участником.", "apihelp-unlinkaccount-example-simple": "Попытаться удалить связь между текущим участником и FooAuthenticationRequest.", "apihelp-upload-summary": "Загрузка файла или получение статуса незавершённых загрузок.", @@ -1531,8 +1534,8 @@ "apihelp-watch-summary": "Добавление или удаление страниц из списка наблюдения текущего участника.", "apihelp-watch-param-title": "Название страницы. Используйте $1titles вместо этого.", "apihelp-watch-param-unwatch": "Если установлено, страницы будут удалены из списка наблюдения, а не добавлены в него.", - "apihelp-watch-example-watch": "Следить за страницей Main Page.", - "apihelp-watch-example-unwatch": "Не следить за страницей Main Page.", + "apihelp-watch-example-watch": "Следить за страницей [[{{MediaWiki:Mainpage}}]].", + "apihelp-watch-example-unwatch": "Не следить за страницей [[{{MediaWiki:Mainpage}}]].", "apihelp-watch-example-generator": "Следить за первым несколькими страницами основного пространства имён.", "apihelp-format-example-generic": "Вернуть результат запроса в формате $1.", "apihelp-format-param-wrappedhtml": "Вернуть хорошо читаемый HTML со связанными модулями ResourceLoader в виде объекта JSON.", @@ -1584,7 +1587,7 @@ "api-help-license": "Лицензия: [[$1|$2]]", "api-help-license-noname": "Лицензия: [[$1|см. ссылку]]", "api-help-license-unknown": "Лицензия: unknown", - "api-help-parameters": "Параметр{{PLURAL:$1||ы}}:", + "api-help-parameters": "{{PLURAL:$1|Определённый параметр|Определённые параметры}}:", "api-help-param-deprecated": "Устарело.", "api-help-param-deprecated-label": "устаревший", "api-help-param-internal": "Внутренний.", @@ -1626,6 +1629,7 @@ "api-help-authmanagerhelper-additional-params": "Этот модуль принимает дополнительные параметры в зависимости от доступных аутентификационных запросов. Используйте [[Special:ApiHelp/query+authmanagerinfo|action=query&meta=authmanagerinfo]] с amirequestsfor=$1 (или предыдущий ответ этого модуля, если доступен) для определения, какие запросы доступны и какие поля они используют.", "apierror-allimages-redirect": "Используйте gaifilterredir=nonredirects вместо redirects при использовании allimages в качестве генератора.", "apierror-allpages-generator-redirects": "Используйте gaifilterredir=nonredirects вместо redirects при использовании allpages в качестве генератора.", + "apierror-alreadyregistered": "У вас уже есть учётная запись участника.", "apierror-appendnotsupported": "Невозможно дописать страницы, использующие модель содержимого $1.", "apierror-articleexists": "Статья, которую вы пытаетесь создать, уже создана.", "apierror-assertanonfailed": "Вы больше не авторизированы, поэтому действие не может быть завершено.", @@ -1685,6 +1689,7 @@ "apierror-compare-no-title": "Невозможно выполнить преобразование перед записью правки без заголовка. Попробуйте задать fromtitle или totitle.", "apierror-compare-nosuchfromsection": "Нет раздела $1 в содержимом «from».", "apierror-compare-nosuchtosection": "Нет раздела $1 в содержимом «to».", + "apierror-compare-notext": "Параметр $1 нельзя использовать без $2.", "apierror-compare-relative-to-nothing": "Нет версии 'from', к которой относится torelative.", "apierror-contentserializationexception": "Сериализация содержимого провалилась: $1", "apierror-contenttoobig": "Предоставленное вами содержимое превышает максимальный размер страницы в $1 {{PLURAL:$1|килобайт|килобайта|килобайтов}}.", @@ -1711,7 +1716,9 @@ "apierror-invalid-chunk": "Сумма смещения и размера текущего кусочка превышает заявленный размер файла.", "apierror-invalidexpiry": "Некорректное время истечения «$1».", "apierror-invalid-file-key": "Некорректный ключ файла.", + "apierror-invalidiprange": "Неверный CIDR-диапазон «$1».", "apierror-invalidlang": "Некорректный код языка для параметра $1.", + "apierror-invalidmethod": "Неверный метод HTTP. Рассмотрите возможность использования GET или POST.", "apierror-invalidoldimage": "Параметр oldimage имеет недопустимый формат.", "apierror-invalidparammix-cannotusewith": "Параметр $1 не может быть использован одновременно с $2.", "apierror-invalidparammix-mustusewith": "Параметр $1 может быть использован только одновременно с $2.", @@ -1816,6 +1823,7 @@ "apierror-stashwrongowner": "Некорректный владелец: $1", "apierror-stashzerolength": "Файл имеет нулевую длину и не может быть сохранён во временное хранилище: $1", "apierror-systemblocked": "Вы были заблокированы автоматически MediaWiki.", + "apierror-tempuserdisabled": "Создание временных учётных записей участника отключено.", "apierror-templateexpansion-notwikitext": "Раскрытие шаблонов разрешено только для вики-текста. $1 использует контентную модель $2.", "apierror-toofewexpiries": "Задано $1 {{PLURAL:$1|временная метка|временные метки|временных меток}} истечения, необходимо $2.", "apierror-toomanyvalues": "Слишком много значений передано параметру $1. Максимальное число — $2.", diff --git a/includes/api/i18n/sd.json b/includes/api/i18n/sd.json index f22b0738ee9..1a617dd3126 100644 --- a/includes/api/i18n/sd.json +++ b/includes/api/i18n/sd.json @@ -5,6 +5,7 @@ "Mehtab ahmed" ] }, + "apihelp-changecontentmodel-summary": "صفحي جي مواد ماڊل کي تبديل ڪريو", "apihelp-edit-param-minor": "ھن سنوار کي معمولي سنوار طور نشان لڳايو.", "apihelp-edit-param-contentmodel": "نئين مواد جو مواد نمونو.", "apihelp-feedcontributions-summary": "ڪنھن واپرائيندڙ جي ڀاڱيدارين جي رسد ورائي ٿو.", @@ -26,6 +27,7 @@ "apihelp-query+allusers-example-y": "ب تي شروع ٿيندڙ واپرائيندڙن جي فھرست ٺاھيو.", "apihelp-query+categorymembers-summary": "ڏنل زمري ۾ سڀني صفحن جي فھرست ڏيو.", "apihelp-query+categorymembers-param-sort": "خصوصيت جنھن سان مرتب ڪجي.", + "apihelp-query+duplicatefiles-example-generated": "سڀني فائيلن جي نقلن لاءِ ڏسو.", "apihelp-query+linkshere-summary": "صفحا لھو جيڪي ڏنل صفحن ڏانھن ڳنڍن ٿا.", "apihelp-query+pageswithprop-summary": "انھن سڀني صفحن جي فھرست ڏيو جن ۾ ڪا ڏنل صفحي خصوصيت استعمال ۾ آھي", "apihelp-query+usercontribs-example-user": "ڪنھن واپرائيندڙ جون ڀاڱيداريون ڏيکاريو مثال.", @@ -36,6 +38,7 @@ "apihelp-query+watchlist-paramvalue-type-external": "ٻاھريون تبديليون.", "apihelp-query+watchlist-paramvalue-type-new": "صفحي سرجايون.", "apihelp-query+watchlist-paramvalue-type-log": "لاگ داخلائون.", + "apihelp-revisiondelete-summary": "ورجاءَ ڊاهيو ۽ اڻ‌ڊاهيو.", "apihelp-rollback-summary": "صفحي ۾ آخري سنوار اڻڪريو.", "apihelp-rollback-param-markbot": "موٽايل سنوارن کي نشان لڳايو ۽ بطور بوٽ سنوارون موٽايو.", "apihelp-stashedit-param-contentmodel": "نئين مواد جو مواد نمونو.", diff --git a/includes/api/i18n/ur.json b/includes/api/i18n/ur.json index 33abb1f6d52..edb60cdef8b 100644 --- a/includes/api/i18n/ur.json +++ b/includes/api/i18n/ur.json @@ -50,6 +50,7 @@ "apihelp-help-example-main": "اصل ماڈیول کی رہنما تفصیلات۔", "apihelp-help-example-recursive": "ایک صفحہ میں تمام رہنمائیاں۔", "apihelp-import-summary": "کسی دوسری ویکی سے یا XML فائل سے صفحہ درآمد کرتا ہے۔", + "apihelp-linkaccount-summary": "کھاتے کو کسی دوسرے فراہم کنندہ سے ہٹا کر موجودہ صارف سے مربوط کرتا ہے۔", "apihelp-login-summary": "لاگ ان ہو کر توثیقی کوکیز حاصل کرتا ہے۔", "apihelp-logout-summary": "لاگ آؤٹ ہو کر نشست کے سارے ڈیٹا کو صاف کرتا ہے۔", "apihelp-managetags-summary": "ٹیگوں کی تبدیلی سے متعلق انتظامی امور انجام دیتا ہے۔", @@ -72,6 +73,7 @@ "apihelp-rsd-summary": "RSD خاکہ کو برآمد کرتا ہے۔", "apihelp-setnotificationtimestamp-summary": "زیر نظر صفحات کے اطلاع نامہ کے وقت و تاریخ کو تازہ کرتا ہے۔", "apihelp-setpagelanguage-summary": "صفحہ کی زبان تبدیل کرتا ہے۔", + "apihelp-tag-summary": "انفرادی نوشتوں یا نوشتہ کے اندراجات سے تبدیلی کے ٹیگوں کو ہٹاتا یا ان میں ٹیگوں کو شامل کرتا ہے۔", "apihelp-json-summary": "ڈیٹا کو JSON شکل میں دیتا ہے۔", "apihelp-json-param-formatversion": "حاصل شدہ مواد کی شکل صورت", "apihelp-jsonfm-summary": "ڈیٹا کو JSON شکل میں دیتا ہے (ایچ ٹی ایم ایل کے خوب صورت انداز میں)", diff --git a/includes/api/i18n/zh-hant.json b/includes/api/i18n/zh-hant.json index 6b8e8c77630..2d2f1e7258a 100644 --- a/includes/api/i18n/zh-hant.json +++ b/includes/api/i18n/zh-hant.json @@ -304,7 +304,7 @@ "apihelp-login-extended-description-nobotpasswords": "此操作已被棄用,且可能在不帶警告的情況下失敗。要安全登入請使用 [[Special:ApiHelp/clientlogin|action=clientlogin]]。", "apihelp-login-param-name": "使用者名稱。", "apihelp-login-param-password": "密碼。", - "apihelp-login-param-domain": "網域名稱(可有可無)。", + "apihelp-login-param-domain": "域名(非必填)。", "apihelp-login-param-token": "在首次請求獲得的登入權杖。", "apihelp-login-example-login": "登入", "apihelp-logout-summary": "登出並清除 session 資料。", diff --git a/includes/installer/i18n/fa.json b/includes/installer/i18n/fa.json index 462dad803d6..d3ce139a6c7 100644 --- a/includes/installer/i18n/fa.json +++ b/includes/installer/i18n/fa.json @@ -167,7 +167,7 @@ "config-ns-site-name": "مشابه نام ویکی: $1", "config-ns-other": "دیگر ( تعیین کنید)", "config-ns-other-default": "ویکی‌من", - "config-project-namespace-help": "مثال‌های ویکی‌پدیا. بسیاری از ویکی‌ها سیاست‌هایشان را در فضای نام غیر پروژه ذخیره می‌کنند.\n\nهمه عنوان‌های صفحات در این فضای نام توسط پیشوند متفاوت جدا می‌شوند که شما می‌توانید اینجا مشخص کنید.\nمعمولاً این پیشوند برگرفته از نام ویکی هستند ولی نمی تواند حروف سجاوندی در نام آن باشد مانند \"#\" یا \":\".", + "config-project-namespace-help": "مثال‌های ویکی‌پدیا. بسیاری از ویکی‌ها سیاست‌هایشان را در فضای نام غیر پروژه ذخیره می‌کنند.\n\nهمه عنوان‌های صفحات در این فضای نام توسط پیشوند متفاوت جدا می‌شوند که شما می‌توانید اینجا مشخص کنید.\nمعمولاً این پیشوند برگرفته از نام ویکی هستند ولی نمی‌تواند حروف سجاوندی در نام آن باشد مانند \"#\" یا \":\".", "config-ns-invalid": "فضای نامی تعیین شدهٔ \"$1\" نامعتبر است.\nیک برنامهٔ فضای نامی دیگری را تعیین کنید.", "config-ns-conflict": "فضای نام تعیین شدهٔ \"$1\" با یک فضای نام پیش‌فرض مدیاویکی مغایرت دارد.\nیک فضای نام پروژه دیگری را تعیین کنید.", "config-admin-box": "حساب مدیر", @@ -198,7 +198,7 @@ "config-profile-no-anon": "نیازمند ایجاد حساب", "config-profile-fishbowl": "فقط کاربر مجاز", "config-profile-private": "ویکی خصوصی", - "config-profile-help": "زمانی ویکی درست کار می کند که شما اجازه دهید تعداد زیادی از مردم آن را ویرایش کنند.\nدر مدیاویکی امکان مشاهدهٔ تغییرات اخیر و واگردانی ویرایش‌های خرابکاری به آسانی وجود دارد.\n\nبا وجودی که مدیا ویکی منافع بسیاری برای مردم دارد ولی متقاعد کردن خیلی از مردم درباره روش کار ویکی‌ها کار آسانی نیست.\n\nدر نتیجه شما دو انتخاب دارید.\n\n'''{{int:config-profile-wiki}}''' به همه کاربرها اجازهٔ ویرایش می دهد حتی بدون ثبت‌نام.\n\nیک ویکی که دارای '''{{int:config-profile-no-anon}}''' باشد امکانات کاربری بیشتری ارائه می‌دهد ولی امکان دارد ویرایشگران عادی را نگران کند.\n\nسناریوی '''{{int:config-profile-fishbowl}}''' به کاربرها اجازهٔ ویرایش می دهد ولی همه می توانند متن و تاریخچه را ببیند.\n\n'''{{int:config-profile-private}}''' فقط به کاربران اجازهٔ مشاهدهٔ مطالب را می‌دهد و فقط آنها می توانند ویرایش کنند.\n\nامتیازات بیشتر کاربری بعد از نصب در [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights راهنماهای مرتبط] موجود است.", + "config-profile-help": "زمانی ویکی درست کار می‌کند که شما اجازه دهید تعداد زیادی از مردم آن را ویرایش کنند.\nدر مدیاویکی امکان مشاهدهٔ تغییرات اخیر و واگردانی ویرایش‌های خرابکاری به آسانی وجود دارد.\n\nبا وجودی که مدیا ویکی منافع بسیاری برای مردم دارد ولی متقاعد کردن خیلی از مردم درباره روش کار ویکی‌ها کار آسانی نیست.\n\nدر نتیجه شما دو انتخاب دارید.\n\n'''{{int:config-profile-wiki}}''' به همه کاربرها اجازهٔ ویرایش می‌دهد حتی بدون ثبت‌نام.\n\nیک ویکی که دارای '''{{int:config-profile-no-anon}}''' باشد امکانات کاربری بیشتری ارائه می‌دهد ولی امکان دارد ویرایشگران عادی را نگران کند.\n\nسناریوی '''{{int:config-profile-fishbowl}}''' به کاربرها اجازهٔ ویرایش می‌دهد ولی همه می‌توانند متن و تاریخچه را ببیند.\n\n'''{{int:config-profile-private}}''' فقط به کاربران اجازهٔ مشاهدهٔ مطالب را می‌دهد و فقط آنها می‌توانند ویرایش کنند.\n\nامتیازات بیشتر کاربری بعد از نصب در [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights راهنماهای مرتبط] موجود است.", "config-license": "حق تکثیر و مجوز:", "config-license-none": "بدون پاورقی مجوز", "config-license-cc-by-sa": "اشتراک گذاری یکجور استناد رایج سازنده", @@ -208,7 +208,7 @@ "config-license-gfdl": "مجوز مستندات آزاد گنو ۱.۳ یا بالاتر", "config-license-pd": "مالکیت عمومی", "config-license-cc-choose": "انتخاب یک مجوز سفارشی عوام خلاق", - "config-license-help": "بسیاری از وبگاه‌ها ویرایش‌های ها را با [https://freedomdefined.org/Definition اجازه‌نامهٔ آزاد] منتشر می‌کنند.\nاین کار به داشتن حس مالکیت جمعی کمک می‌کند و ویرایش‌های طولانی مدت را اشاعه می‌دهد.\nاین برای ویکی‌های خصوصی یا سازمانی الزامی نیست.\n\nاگر شما می‌خواهید از متون ویکی‌پدیا استفاده کنید، یا اینکه به ویکی‌پدیا اجازه دهید از متون شما استفاده کند باید متون خود را با {{int:config-license-cc-by-sa}} منتشر کنید.\n\nویکی‌پدیا در گذشته از اجازه‌نامهٔ داده‌های آزاد گنو استفاده می‌کرد.\nاین اجازه‌نامه مورد قبول است، ولی فهم آن آسان نیست.\nهمچنین استفادهٔ دوباره از متون تحت اجازه‌نامهٔ داده‌های آزاد گنو به سختی انجام می‌گیرد.", + "config-license-help": "بسیاری از وبگاه‌ها ویرایش‌های‌ها را با [https://freedomdefined.org/Definition اجازه‌نامهٔ آزاد] منتشر می‌کنند.\nاین کار به داشتن حس مالکیت جمعی کمک می‌کند و ویرایش‌های طولانی مدت را اشاعه می‌دهد.\nاین برای ویکی‌های خصوصی یا سازمانی الزامی نیست.\n\nاگر شما می‌خواهید از متون ویکی‌پدیا استفاده کنید، یا اینکه به ویکی‌پدیا اجازه دهید از متون شما استفاده کند باید متون خود را با {{int:config-license-cc-by-sa}} منتشر کنید.\n\nویکی‌پدیا در گذشته از اجازه‌نامهٔ داده‌های آزاد گنو استفاده می‌کرد.\nاین اجازه‌نامه مورد قبول است، ولی فهم آن آسان نیست.\nهمچنین استفادهٔ دوباره از متون تحت اجازه‌نامهٔ داده‌های آزاد گنو به سختی انجام می‌گیرد.", "config-email-settings": "تنظیمات ایمیل", "config-enable-email": "فعال‌سازی ایمیل خروجی", "config-enable-email-help": "اگر می‌خواهید ارسال ایمیل کار کند، [https://www.php.net/manual/en/mail.configuration.php تنظیمات ایمیل PHP] نیازمند پیکربندی صحیح است.\nاگر هیچ قابلیت ایمیلی نمی‌خواهید، می‌توانید آنها را اینجا غیر‌فعال کنید.", @@ -296,8 +296,8 @@ "config-install-mainpage-exists": "صفحهٔ اصلی موجود است، رها شد", "config-install-extension-tables": "ایجاد جداول برای افزونه‌های فعال", "config-install-mainpage-failed": "قادر به درج صفحهٔ اصلی نمی‌باشد:$1", - "config-install-done": "'''تبریک!'''\nبا موفقیت مدیاویکی را نصب کردید.\nبرنامه نصب‌کننده پرونده LocalSettings.php را درست کرد.\nکه شامل تمام تنظیمات می‌باشد.\n\nشما نیاز به دریافت آن دارید و آن را در پایهٔ نصب ویکی قرار دهید (همان پوشهٔ index.php). دریافت باید به صورت خودکار شروع شده‌باشد.\n\nاگر دریافت شروع نشد یا اگر آن را لغو کردید با کلیک روی پیوند زیر می‌توانید آن را دریافت کنید:\n\n$3\n\n'''توجه داشته باشید:''' اگر این را الآن انجام ندهید، این پرونده تولیدشده در صورتی که نصب را بدون دریافت آن تمام کردید بعداً در اختیار شما قرار نخواهد گرفت.\n\nوقتی انجام شد شما می‌توانید '''[$2 وارد ویکی شوید]'''.", - "config-install-done-path": "تبریک!\nمدیاویکی با موفقیت نصب گردید.\nبرنامه نصب‌کننده یک پرونده LocalSettings.php ایجاد کرده است که شامل تمام تنظیمات می‌باشد.\n\nلازم است شما آن را دریافت کرده و در $4 قرار دهید. اِن دریافت می باِست به صورت خودکار شروع شده‌باشد.\n\nاگر دریافت شروع نشده بود و یا آن را لغو کرده اید با کلیک روی پیوند زیر می‌توانید آن را دریافت کنید:\n\n$3\n\nتوجه: اگر این کار را هم اکنون انجام ندهید و بدون دریافت آن از برنامه نصب خارج شويد، این پرونده تنظیمات تولیدشده در آینده در اختیار شما قرار نخواهد داشت.\n\nوقتی که آن کار را انجام داديد، می‌توانید [$2 وارد ويکی خودتان شويد].", + "config-install-done": "'''تبریک!'''\nبا موفقیت مدیاویکی را نصب کردید.\nبرنامه نصب‌کننده پرونده LocalSettings.php را درست کرد.\nکه شامل تمام تنظیمات می‌باشد.\n\nشما نیاز به دریافت آن دارید و آن را در پایهٔ نصب ویکی قرار دهید (همان پوشهٔ index.php). دریافت باید به صورت خودکار شروع شده باشد.\n\nاگر دریافت شروع نشد یا اگر آن را لغو کردید با کلیک روی پیوند زیر می‌توانید آن را دریافت کنید:\n\n$3\n\n'''توجه داشته باشید:''' اگر این را الان انجام ندهید، این پرونده تولیدشده در صورتی که نصب را بدون دریافت آن تمام کردید بعداً در اختیار شما قرار نخواهد گرفت.\n\nوقتی انجام شد شما می‌توانید '''[$2 وارد ویکی شوید]'''.", + "config-install-done-path": "تبریک!\nمدیاویکی با موفقیت نصب شد.\nبرنامهٔ نصب‌کننده یک پرونده LocalSettings.php ایجاد کرده است که شامل تمام تنظیمات است.\n\nلازم است آن را دریافت کرده و در $4 قرار دهید. این دریافت می‌بایست به صورت خودکار شروع شده باشد.\n\nاگر دریافت شروع نشده بود و یا آن را لغو کرده‌اید با کلیک روی پیوند زیر می‌توانید آن را دریافت کنید:\n\n$3\n\nتوجه: اگر این کار را هم‌اکنون انجام ندهید و بدون دریافت آن از برنامهٔ نصب خارج شويد، این پیکربندی تولیدشده در آینده در اختیار شما قرار داده نمی‌شود.\n\nوقتی که آن کار را انجام داديد، می‌توانید [$2 وارد ويکی خودتان شويد].", "config-install-success": "نصب مدیاویکی موفق بود. شما می‌توانید برای دیدن ویکی‌تان از <$1$2> بازدید کنید.\nاگر پرسشی داشتید، فهرست پرسش‌های متداول ما را مطالعه کنید:\n یا از یکی از انجمن‌های پشیبانی که در آن صفحه فهرست شده‌اند استفاده کنید.", "config-install-db-success": "دادگان با موفقیت نصب شد", "config-download-localsettings": "دریافت LocalSettings.php", diff --git a/includes/installer/i18n/hi.json b/includes/installer/i18n/hi.json index 634f7dd40cc..b71fa486d2d 100644 --- a/includes/installer/i18n/hi.json +++ b/includes/installer/i18n/hi.json @@ -10,7 +10,8 @@ "Shyamal", "Smtchahal", "Vivek Rai", - "संजीव कुमार" + "संजीव कुमार", + "Abijeet Patro" ] }, "config-desc": "मीडियाविकि के लिए इंस्टॉलर", @@ -309,6 +310,7 @@ "config-screenshot": "स्क्रीनशॉट", "config-extension-not-found": "एक्सटेंशन \"$1\" के लिए पंजीकरण फ़ाइल नहीं मिला", "config-extension-dependency": "एक्सटेंशन \"$1\" को स्थापित करते समय निर्भरता में त्रुटि आई: $2", + "config-ext-skins-more-info": "अधिक जानकारी", "mainpagetext": "मीडियाविकि स्थापित हो चुका है।", "mainpagedocfooter": "इस विकि सॉफ़्टवेयर का किस प्रकार आप इस्तेमाल कर सकते हैं, इसकी जानकारी के लिए [https://meta.wikimedia.org/wiki/Help:Contents सदस्य गाइड] देखें।\n\n== शुरुआत करें ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings कॉन्फ़िगरेशन सेटिंग्स की सूची]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ मीडियाविकि के बारे में अक्सर पूछे जाने वाले सवाल]\n* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ मीडियाविकि प्रकाशन की मेल सूची]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources आपकी भाषा में मीडियाविकि का अनुवाद]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam अपने विकि को स्पैम और बर्बरता से कैसे बचाएँ]" } diff --git a/includes/installer/i18n/sco.json b/includes/installer/i18n/sco.json index 248db0b07f1..21ed572859f 100644 --- a/includes/installer/i18n/sco.json +++ b/includes/installer/i18n/sco.json @@ -6,7 +6,8 @@ "John Reid", "Macofe", "Seb35", - "CiphriusKane" + "CiphriusKane", + "Amire80" ] }, "config-desc": "The installer fer MediaWiki", @@ -180,7 +181,7 @@ "config-license-gfdl": "GNU Free Documentâtion License 1.3 or later", "config-license-pd": "Public Domain", "config-license-cc-choose": "Select ae custom Creative Commons license", - "config-license-help": "Monie publeec wikis pit aw contreebutions unner ae [https://freedomdefined.org/Defineetion free license].\nThis heelps tae creaut ae sense o communitie ainership n encoorages lang-term contreebution.\nIt's naw generallie necessair fer ae preevate or corporate wiki.\n\nGif ye wish tae be able tae uise tex fae Wikipædia, n ye want Wikipædia tae be able tae accept tex copied fae yer wiki, than ye shid chuise Creative Commons Attribution Shair Alike.\n\nWikipædia preeveeooslie uised the GNU Free Documentation License.\nThe GFDL is ae valid license, but it's difficult tae unnerstaunn.\nMairower, it's difficult tae reuise content licensed unner the GFDL.", + "config-license-help": "Monie publeec wikis pit aw contreebutions unner ae [https://freedomdefined.org/Defineetion free license].\nThis heelps tae creaut ae sense o communitie ainership n encoorages lang-term contreebution.\nIt's naw generallie necessair fer ae preevate or corporate wiki.\n\nGif ye wish tae be able tae uise tex fae Wikipaedia, n ye want Wikipaedia tae be able tae accept tex copied fae yer wiki, than ye shid chuise Creative Commons Attribution Shair Alike.\n\nWikipaedia preeveeooslie uised the GNU Free Documentation License.\nThe GFDL is ae valid license, but it's difficult tae unnerstaunn.\nMairower, it's difficult tae reuise content licensed unner the GFDL.", "config-email-settings": "Wab-mail settins", "config-enable-email": "Enable ootboond wab-mail", "config-enable-email-help": "Gif ye want wab-mail tae wark, [https://www.php.net/manual/en/mail.configuration.php PHP's mail settins] need tae be confeegured jyst richt.\nGif ye dinna want oni wab-mail features, ye can disable theim here.", diff --git a/includes/installer/i18n/zh-hant.json b/includes/installer/i18n/zh-hant.json index 7f093b8aed4..7fbcc8e12e2 100644 --- a/includes/installer/i18n/zh-hant.json +++ b/includes/installer/i18n/zh-hant.json @@ -242,11 +242,11 @@ "config-logo-preview-main": "首頁", "config-logo-icon": "標誌(圖示)", "config-logo-icon-help": "您的標誌模樣應採用方形,一般會是超過 50 像素或是 SVG 格式。", - "config-logo-wordmark": "字標(選擇性)", + "config-logo-wordmark": "字標(非必填):", "config-logo-wordmark-help": "您站台的名稱。若未定義的話,通常會退回成文字。一般會是高度等於或不超過 30 像素的 SVG。", - "config-logo-tagline": "標語(可選)", + "config-logo-tagline": "標語(非必填):", "config-logo-tagline-help": "您站台的標語。僅在您有定義上方字標時才使用。若未定義的話,通常會退回成文字。標語與字標的結合高度在一般規則是不超過 50 像素。", - "config-logo-sidebar": "側欄標誌(選擇性):", + "config-logo-sidebar": "側邊欄標誌(非必填):", "config-logo-filedrop": "拖放圖片檔案至此", "config-logo-sidebar-help": "某些 MediaWiki 外觀的側欄選單會包含高度為 160 像素的標誌。若未定義,會與上方所定義的圖示相同。您可能會想要一個結合字標與圖示的專用圖形。", "config-instantcommons": "開啟即時共享資源", diff --git a/includes/libs/StatusValue.php b/includes/libs/StatusValue.php index 0df40d0a974..98cac13f710 100644 --- a/includes/libs/StatusValue.php +++ b/includes/libs/StatusValue.php @@ -63,6 +63,9 @@ class StatusValue { /** @var int Counter for batch operations */ public $failCount = 0; + /** @var mixed arbitrary extra data about the operation */ + public $statusData; + /** * Factory function for fatal errors * @@ -285,6 +288,12 @@ class StatusValue { * @return $this */ public function merge( $other, $overwriteValue = false ) { + if ( $this->statusData !== null && $other->statusData !== null ) { + throw new RuntimeException( "Status cannot be merged, because they both have \$statusData" ); + } else { + $this->statusData ??= $other->statusData; + } + foreach ( $other->errors as $error ) { $this->addError( $error ); } @@ -294,6 +303,7 @@ class StatusValue { } $this->successCount += $other->successCount; $this->failCount += $other->failCount; + return $this; } diff --git a/includes/specials/SpecialMovePage.php b/includes/specials/SpecialMovePage.php index 17ae068f1ec..497642945c5 100644 --- a/includes/specials/SpecialMovePage.php +++ b/includes/specials/SpecialMovePage.php @@ -992,15 +992,19 @@ class SpecialMovePage extends UnlistedSpecialPage { ); if ( $nsHasSubpages ) { - $this->showSubpagesList( $subpages, $count, 'movesubpagetext', true ); + $this->showSubpagesList( + $subpages, $count, 'movesubpagetext', 'movesubpagetext-truncated', true + ); } if ( !$titleIsTalk && $countTalk > 0 ) { - $this->showSubpagesList( $subpagesTalk, $countTalk, 'movesubpagetalktext' ); + $this->showSubpagesList( + $subpagesTalk, $countTalk, 'movesubpagetalktext', 'movesubpagetalktext-truncated' + ); } } - private function showSubpagesList( $subpages, $pagecount, $wikiMsg, $noSubpageMsg = false ) { + private function showSubpagesList( $subpages, $pagecount, $msg, $truncatedMsg, $noSubpageMsg = false ) { $out = $this->getOutput(); # No subpages. @@ -1013,14 +1017,9 @@ class SpecialMovePage extends UnlistedSpecialPage { if ( $pagecount > $maximumMovedPages ) { $subpages = $this->truncateSubpagesList( $subpages ); - // TODO: Replace with a message key once this is uploaded to Gerrit. This is hardcoded to avoid - // having the i18n rebuilt for all deployments due to this security patch. - $out->addWikiTextAsInterface( - "The first $maximumMovedPages {{PLURAL:$maximumMovedPages|subpage|subpages}} " . - ( $noSubpageMsg ? 'for this page' : 'for the corresponding talk page' ) . ' are shown below.' - ); + $out->addWikiMsg( $truncatedMsg, $this->getLanguage()->formatNum( $maximumMovedPages ) ); } else { - $out->addWikiMsg( $wikiMsg, $this->getLanguage()->formatNum( $pagecount ) ); + $out->addWikiMsg( $msg, $this->getLanguage()->formatNum( $pagecount ) ); } $out->addHTML( "