Merge "ContribsPager: Don't hardcode brackets in `uctop` information"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 17 Nov 2018 01:39:27 +0000 (01:39 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 17 Nov 2018 01:39:27 +0000 (01:39 +0000)
37 files changed:
RELEASE-NOTES-1.33
includes/EditPage.php
includes/GlobalFunctions.php
includes/MagicWordFactory.php
includes/api/i18n/zh-hant.json
includes/htmlform/fields/HTMLCheckMatrix.php
includes/installer/DatabaseInstaller.php
includes/page/WikiCategoryPage.php
includes/specials/SpecialUnusedcategories.php
includes/widget/CheckMatrixWidget.php
languages/i18n/ar.json
languages/i18n/avk.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/he.json
languages/i18n/ia.json
languages/i18n/mk.json
languages/i18n/my.json
languages/i18n/nb.json
languages/i18n/pt-br.json
languages/i18n/roa-tara.json
languages/i18n/shn.json
languages/i18n/sr-ec.json
languages/i18n/uk.json
languages/i18n/zh-hant.json
languages/messages/MessagesEn.php
resources/Resources.php
resources/src/mediawiki.htmlform.ooui.styles.less
resources/src/mediawiki.htmlform.styles/styles.css
resources/src/mediawiki.rcfilters/images/clip.svg [deleted file]
resources/src/mediawiki.rcfilters/images/pending.gif [deleted file]
resources/src/mediawiki.rcfilters/images/pushPin.svg [deleted file]
resources/src/mediawiki.rcfilters/images/unClip.svg [deleted file]
resources/src/mediawiki.widgets/mw.widgets.CheckMatrixWidget.js
tests/phpunit/includes/page/WikiCategoryPageTest.php

index c573a59..df6b5f8 100644 (file)
@@ -30,6 +30,8 @@ production.
 
 === New features in 1.33 ===
 * The 'GetPreferences' hook now receives an additional $context parameter.
+* (T96041) __EXPECT_UNUSED_CATEGORY__ on a category page causes the category
+  to be hidden on Special:UnusedCategories.
 * …
 
 === External library changes in 1.33 ===
index 373f6d9..1f17297 100644 (file)
@@ -3145,16 +3145,22 @@ ERROR;
                        );
                } elseif ( $user->isAnon() ) {
                        if ( $this->formtype != 'preview' ) {
+                               $returntoquery = array_diff_key(
+                                       $this->context->getRequest()->getValues(),
+                                       [ 'title' => true, 'returnto' => true, 'returntoquery' => true ]
+                               );
                                $out->wrapWikiMsg(
                                        "<div id='mw-anon-edit-warning' class='warningbox'>\n$1\n</div>",
                                        [ 'anoneditwarning',
                                                // Log-in link
                                                SpecialPage::getTitleFor( 'Userlogin' )->getFullURL( [
-                                                       'returnto' => $this->getTitle()->getPrefixedDBkey()
+                                                       'returnto' => $this->getTitle()->getPrefixedDBkey(),
+                                                       'returntoquery' => wfArrayToCgi( $returntoquery ),
                                                ] ),
                                                // Sign-up link
                                                SpecialPage::getTitleFor( 'CreateAccount' )->getFullURL( [
-                                                       'returnto' => $this->getTitle()->getPrefixedDBkey()
+                                                       'returnto' => $this->getTitle()->getPrefixedDBkey(),
+                                                       'returntoquery' => wfArrayToCgi( $returntoquery ),
                                                ] )
                                        ]
                                );
index 78d619d..26c4d0a 100644 (file)
@@ -266,7 +266,7 @@ function wfObjectToArray( $objOrArray, $recursive = true ) {
 }
 
 /**
- * Get a random decimal value between 0 and 1, in a way
+ * Get a random decimal value in the domain of [0, 1), in a way
  * not likely to give duplicate values for any realistic
  * number of articles.
  *
index e62716d..4e9bfaf 100644 (file)
@@ -173,6 +173,7 @@ class MagicWordFactory {
                'newsectionlink',
                'nonewsectionlink',
                'hiddencat',
+               'expectunusedcategory',
                'index',
                'noindex',
                'staticredirect',
index 039bbc6..7c4a725 100644 (file)
        "apihelp-expandtemplates-paramvalue-prop-volatile": "輸出內容是否易變,且是否不應在頁面其它位置裡重複使用。",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "指定頁面的 JavaScript 設置變量。",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "指定頁面的 JavaScript 設置變量為 JSON 字串。",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "輸出的 XML 解析樹狀。",
        "apihelp-expandtemplates-param-includecomments": "輸出裡是否包含 HTML 註解。",
        "apihelp-expandtemplates-example-simple": "展開 wiki 文字<kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>。",
        "apihelp-feedcontributions-summary": "回傳使用者貢獻 Feed。",
        "apihelp-userrights-summary": "變更一位使用者的群組成員。",
        "apihelp-userrights-param-user": "使用者名稱。",
        "apihelp-userrights-param-userid": "使用者ID。",
-       "apihelp-userrights-param-add": "加入使用者至這些群組;若已是成員,則更新失效時間。",
+       "apihelp-userrights-param-add": "加入使用者至這些群組;若已是成員,則更新期限時間。",
        "apihelp-userrights-param-remove": "從這些群組移除使用者。",
        "apihelp-userrights-param-reason": "變更的原因。",
        "apihelp-userrights-param-tags": "在使用者權限日誌裡更改套用到項目的標籤。",
        "apierror-imageusage-badtitle": "<kbd>$1</kbd>的標題必須是檔案。",
        "apierror-import-unknownerror": "未知的匯入錯誤:$1",
        "apierror-invalidcategory": "您所輸入的分類名稱無效。",
-       "apierror-invalidexpiry": "無效的逾期時間「$1」。",
+       "apierror-invalidexpiry": "無效的期限時間「$1」。",
        "apierror-invalidlang": "用於參數 <var>$1</var> 的語言代碼無效。",
        "apierror-invalidoldimage": "<var>oldimage</var> 參數含有無效格式。",
        "apierror-invalidparammix-cannotusewith": "參數 <kbd>$1</kbd> 不能與 <kbd>$2</kbd> 一起使用。",
        "apierror-mimesearchdisabled": "MIME 搜尋在 Miser 模式裡被停用。",
        "apierror-missingcontent-pageid": "遺失頁面 ID 為 $1 的內容。",
        "apierror-missingcontent-revid": "遺失修訂 ID 為 $1 的內容。",
-       "apierror-missingparam-one-of": "{{PLURAL:$2|參數|參數其一}} $1 為必要。",
+       "apierror-missingparam-at-least-one-of": "參數$1{{PLURAL:$2||其一}}為必要。",
+       "apierror-missingparam-one-of": "參數$1{{PLURAL:$2||其一}}為必要。",
        "apierror-missingparam": "<var>$1</var>參數必須被設定。",
        "apierror-missingrev-pageid": "沒有頁面 ID 為 $1 的目前修訂。",
        "apierror-missingrev-title": "沒有標題為$1的目前修訂。",
+       "apierror-missingtitle-createonly": "遺失標題不能以 <kbd>create</kbd> 來保護。",
        "apierror-missingtitle": "您所指定的頁面不存在。",
        "apierror-missingtitle-byname": "頁面$1不存在。",
        "apierror-moduledisabled": "模組 <kbd>$1</kbd> 已停用。",
+       "apierror-multival-only-one-of": "參數 <var>$1</var> 僅允許$2{{PLURAL:$3||其一}}。",
        "apierror-multpages": "<var>$1</var> 僅能以單一頁面使用。",
        "apierror-mustbeloggedin-changeauth": "必須登入,才能變更身分核對資取。",
        "apierror-mustbeloggedin-generic": "您必須登入。",
        "apierror-nouploadmodule": "未設定上傳模組。",
        "apierror-opensearch-json-warnings": "警告不能以 OpenSearch JSON 格式表示。",
        "apierror-pagecannotexist": "命名空間不允許實際頁面。",
+       "apierror-pagedeleted": "自從您取得時間戳記後,該頁面已被刪除。",
        "apierror-pagelang-disabled": "此 wiki 不允許更改頁面的語言。",
        "apierror-paramempty": "參數 <var>$1</var> 不能為空。",
        "apierror-parsetree-notwikitext": "<kbd>prop=parsetree</kbd> 僅支援用於 wiki 文字內容。",
        "apierror-parsetree-notwikitext-title": "<kbd>prop=parsetree</kbd> 僅支援用於 wiki 文字內容。$1使用內容模組 $2。",
+       "apierror-pastexpiry": "期限時間「$1」已過。",
        "apierror-permissiondenied": "您沒有權限$1。",
        "apierror-permissiondenied-generic": "權限不足。",
        "apierror-permissiondenied-patrolflag": "您需要 <code>patrol</code> 或 <code>patrolmarks</code> 權限來請求巡查標記。",
        "apierror-sectionsnotsupported": "內容模組 $1 不支援段落。",
        "apierror-sectionsnotsupported-what": "$1 不支援段落。",
        "apierror-show": "不正確的參數 - 不可提供互斥值。",
+       "apierror-siteinfo-includealldenied": "除非 <var>$wgShowHostnames</var> 設為真,否則無法檢視所有伺服器資訊。",
        "apierror-sizediffdisabled": "大小差異功能在 Miser 模式裡已停用。",
        "apierror-spamdetected": "您的編輯被拒絕,因為有包含部份垃圾訊息內容:<code>$1</code>。",
        "apierror-specialpage-cantexecute": "您沒有權限來查看此特殊頁面的結果。",
        "apierror-stashedfilenotfound": "在儲藏裡找不到檔案:$1。",
        "apierror-stashedit-missingtext": "給予的雜湊裡查無儲藏文字。",
+       "apierror-stashfailed-complete": "大量上傳已完成,請檢查狀態來獲取詳情。",
        "apierror-stashfilestorage": "在儲藏裡不能儲存上傳:$1。",
        "apierror-stashinvalidfile": "無效的儲藏檔案。",
        "apierror-stashnosuchfilekey": "沒有這樣的檔案鍵:$1。",
        "apiwarn-invalidxmlstylesheetext": "樣式表應要有 <code>.xsl</code> 副檔名。",
        "apiwarn-invalidxmlstylesheet": "指定了無效或不存在的樣式表。",
        "apiwarn-invalidxmlstylesheetns": "樣式表應在 {{ns:MediaWiki}} 命名空間。",
+       "apiwarn-moduleswithoutvars": "屬性 <kbd>modules</kbd> 已被設定,但不是 <kbd>jsconfigvars</kbd> 或 <kbd>encodedjsconfigvars</kbd>。需要設置變數來讓模組使用合宜。",
        "apiwarn-notfile": "「$1」不是一個檔案。",
        "apiwarn-nothumb-noimagehandler": "無法建立縮圖,因為$1沒有相關的圖片處理器。",
        "apiwarn-parse-nocontentmodel": "未提供 <var>title</var> 或 <var>contentmodel</var>,應是 $1。",
        "apiwarn-validationfailed": "<kbd>$1</kbd>驗證錯誤:$2",
        "apiwarn-wgDebugAPI": "<strong>安全警告</strong>:<var>$wgDebugAPI</var> 已啟用。",
        "api-feed-error-title": "錯誤($1)",
+       "api-usage-docref": "查看 $1 來了解 API 的使用。",
        "api-credits-header": "製作群",
        "api-credits": "API 開發人員:\n* Roan Kattouw (首席開發者 Sep 2007–2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (創立者,首席開發者 Sep 2006–Sep 2007)\n* Brad Jorsch (首席開發者 2013–present)\n\n請傳送您的評論、建議以及問題至 mediawiki-api@lists.wikimedia.org\n或者回報問題至 https://phabricator.wikimedia.org/。"
 }
index 281d348..274d2c0 100644 (file)
@@ -91,9 +91,10 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                // Build the column headers
                $headerContents = Html::rawElement( 'td', [], "\u{00A0}" );
                foreach ( $columns as $columnLabel => $columnTag ) {
-                       $headerContents .= Html::rawElement( 'td', [], $columnLabel );
+                       $headerContents .= Html::rawElement( 'th', [], $columnLabel );
                }
-               $tableContents .= Html::rawElement( 'tr', [], "\n$headerContents\n" );
+               $thead = Html::rawElement( 'tr', [], "\n$headerContents\n" );
+               $tableContents .= Html::rawElement( 'thead', [], "\n$thead\n" );
 
                $tooltipClass = 'mw-icon-question';
                if ( isset( $this->mParams['tooltip-class'] ) ) {
index e6ee70e..a146ae4 100644 (file)
@@ -382,6 +382,7 @@ abstract class DatabaseInstaller {
                $up = DatabaseUpdater::newForDB( $this->db );
                try {
                        $up->doUpdates();
+                       $up->purgeCache();
                } catch ( MWException $e ) {
                        echo "\nAn error occurred:\n";
                        echo $e->getText();
@@ -391,7 +392,6 @@ abstract class DatabaseInstaller {
                        echo $e->getMessage();
                        $ret = false;
                }
-               $up->purgeCache();
                ob_end_flush();
 
                return $ret;
index 6c93202..2837573 100644 (file)
@@ -59,6 +59,20 @@ class WikiCategoryPage extends WikiPage {
                $pageId = $this->getTitle()->getArticleID();
                $pageProps = PageProps::getInstance()->getProperties( $this->getTitle(), 'hiddencat' );
 
-               return isset( $pageProps[$pageId] ) ? true : false;
+               return isset( $pageProps[$pageId] );
+       }
+
+       /**
+        * Checks if a category is expected to be an unused category.
+        *
+        * @since 1.33
+        *
+        * @return bool
+        */
+       public function isExpectedUnusedCategory() {
+               $pageId = $this->getTitle()->getArticleID();
+               $pageProps = PageProps::getInstance()->getProperties( $this->getTitle(), 'expectunusedcategory' );
+
+               return isset( $pageProps[$pageId] );
        }
 }
index 1469742..2577a10 100644 (file)
@@ -39,7 +39,7 @@ class UnusedCategoriesPage extends QueryPage {
 
        public function getQueryInfo() {
                return [
-                       'tables' => [ 'page', 'categorylinks' ],
+                       'tables' => [ 'page', 'categorylinks', 'page_props' ],
                        'fields' => [
                                'namespace' => 'page_namespace',
                                'title' => 'page_title',
@@ -48,9 +48,16 @@ class UnusedCategoriesPage extends QueryPage {
                        'conds' => [
                                'cl_from IS NULL',
                                'page_namespace' => NS_CATEGORY,
-                               'page_is_redirect' => 0
+                               'page_is_redirect' => 0,
+                               'pp_page IS NULL'
                        ],
-                       'join_conds' => [ 'categorylinks' => [ 'LEFT JOIN', 'cl_to = page_title' ] ]
+                       'join_conds' => [
+                               'categorylinks' => [ 'LEFT JOIN', 'cl_to = page_title' ],
+                               'page_props' => [ 'LEFT JOIN', [
+                                       'page_id = pp_page',
+                                       'pp_propname' => 'expectunusedcategory'
+                               ] ]
+                       ]
                ];
        }
 
index 8038c54..797a81f 100644 (file)
@@ -58,19 +58,25 @@ class CheckMatrixWidget extends \OOUI\Widget {
 
                // Build the table
                $table = new \OOUI\Tag( 'table' );
+               $table->addClasses( [ 'mw-htmlform-matrix mw-widget-checkMatrixWidget-matrix' ] );
+               $thead = new \OOUI\Tag( 'thead' );
+               $table->appendContent( $thead );
                $tr = new \OOUI\Tag( 'tr' );
+
                // Build the header
                $tr->appendContent( $this->getCellTag( "\u{00A0}" ) );
                foreach ( $this->columns as $columnLabel => $columnTag ) {
                        $tr->appendContent(
-                               $this->getCellTag( new \OOUI\HtmlSnippet( $columnLabel ) )
+                               $this->getCellTag( new \OOUI\HtmlSnippet( $columnLabel ), 'th' )
                        );
                }
-               $table->appendContent( $tr );
+               $thead->appendContent( $tr );
 
                // Build the options matrix
+               $tbody = new \OOUI\Tag( 'tbody' );
+               $table->appendContent( $tbody );
                foreach ( $this->rows as $rowLabel => $rowTag ) {
-                       $table->appendContent(
+                       $tbody->appendContent(
                                $this->getTableRow( $rowLabel, $rowTag )
                        );
                }
@@ -126,8 +132,8 @@ class CheckMatrixWidget extends \OOUI\Widget {
         * @param  mixed $content Content for the <td> cell
         * @return \OOUI\Tag Resulting cell
         */
-       private function getCellTag( $content ) {
-               $cell = new \OOUI\Tag( 'td' );
+       private function getCellTag( $content, $tagElement = 'td' ) {
+               $cell = new \OOUI\Tag( $tagElement );
                $cell->appendContent( $content );
                return $cell;
        }
index 34994b8..f74f243 100644 (file)
        "prefs-email": "خيارات البريد الإلكتروني",
        "prefs-rendering": "المظهر",
        "saveprefs": "احفظ",
-       "restoreprefs": "استرجع Ù\83Ù\84 Ø§Ù\84إعدادات Ø§Ù\84اÙ\81تراضÙ\8aØ©",
+       "restoreprefs": "استرجاع Ù\83Ù\84 Ø§Ù\84إعدادات Ø§Ù\84اÙ\81تراضÙ\8aØ© (Ù\81Ù\8a Ù\83Ù\84 Ø§Ù\84Ø£Ù\82ساÙ\85)",
        "prefs-editing": "التحرير",
        "searchresultshead": "بحث",
        "stub-threshold": "الحد لتنسيق وصلة البذرة ($1):",
        "rollback-success-notify": "تم استرجاع التعديلات بواسطة $1;\nتم التغيير إلى آخر مراجعة بواسطة $2. [$3 عرض التغييرات]",
        "sessionfailure-title": "فشل في الجلسة",
        "sessionfailure": "يبدو أنه هناك مشكلة في جلسة الدخول الخاصة بك؛\nلذلك فقد ألغيت هذه العملية كإجراء احترازي ضد الاختراق.\nمن فضلك أعد إرسال الاستمارة مرة أخرى.",
-       "changecontentmodel": "غير نموذج المحتوى لصفحة",
+       "changecontentmodel": "تغÙ\8aير نموذج المحتوى لصفحة",
        "changecontentmodel-legend": "غير نموذج المحتوى",
        "changecontentmodel-title-label": "عنوان الصفحة",
        "changecontentmodel-model-label": "نموذج محتوى جديد",
index f6de868..3b38d26 100644 (file)
@@ -8,7 +8,8 @@
                        "Wikimistusik",
                        "Zetud",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Axel xadolik"
                ]
        },
        "tog-underline": "Levconhani gluyasiki se",
        "actions": "Tegira",
        "namespaces": "Yoltxo",
        "variants": "Arapeniks",
+       "navigation-heading": "Exulera",
        "errorpagetitle": "Rokla",
        "returnto": "Dimgrablera va $1 bu.",
        "tagline": "Teliz mal {{SITENAME}}.",
        "printableversion": "Rorubian siatos",
        "permalink": "Elupkafi gluyasiki",
        "print": "Rubiara",
+       "view": "Wira",
        "edit": "Betara",
        "create": "Redura",
        "delete": "Sulara",
        "otherlanguages": "Ara ava",
        "redirectedfrom": "(Graskan mal $1)",
        "redirectpagesub": "Bugraskara",
-       "lastmodifiedat": "Ironakafa betara va bu tir ba $2, $1.",
+       "lastmodifiedat": "Darefa betara va bu tir ba $2 dene $1.",
        "viewcount": "Batu bu {{PLURAL:$1|1-on|$1 -on}} al zo ruper.",
        "protectedpage": "Nendanu bu",
        "jumpto": "Grablé kal",
        "nstab-template": "Teza",
        "nstab-help": "Pomara",
        "nstab-category": "Loma",
+       "mainpage-nstab": "Emudexo",
        "nosuchaction": "Megrupena tegira",
        "nosuchactiontext": "Ruidanaca koe URL gan wiki me zo kagruper.\nURL lanon tir ordajaf ok gluyajan.\nBatcoba va zvak koe talpeyot ke {{SITENAME}} dere robazer.",
        "nosuchspecialpage": "Mekruldesu aptafu bu",
        "accountcreatedtext": "Favesikpata ke $1 tir reduyuna.",
        "createaccount-title": "Pataredura koe {{SITENAME}}",
        "loginlanguagelabel": "Ava : $1",
+       "pt-createaccount": "Pataredú",
        "changepassword": "Betara va remravlem",
        "resetpass_announce": "Rin kan ugalorafa 'email' beksa va int pilkomodayal.\nTa da wan zo pilkomodal, va warzaf remravlem batlize gobazel :",
        "resetpass_header": "Va remravlem gobetal !",
        "tooltip-pt-login": "Pataredura zo koldar voxe me tir vrebafa.",
        "tooltip-pt-logout": "Voldogluyara",
        "tooltip-ca-talk": "Keyaksera va telizbu",
-       "tooltip-ca-edit": "Va batu bu robetal. Va \"Abdinedira\" vulegasiki abdi giwara vay favel !",
+       "tooltip-ca-edit": "Bubetara",
        "tooltip-ca-addsection": "Bokara va warzaf gabot",
        "tooltip-ca-viewsource": "Batu bu zo nendar. Rin va klita rowil.",
        "tooltip-ca-history": "Abdif siatoseem ke batu bu.",
        "tooltip-ca-nstab-main": "Rupera va cekbu",
        "tooltip-ca-nstab-user": "Wira va favesikbu",
        "tooltip-ca-nstab-media": "Wira va kanacabu",
-       "tooltip-ca-nstab-special": "Batu bu tis aptafu bu vaon me robetal",
+       "tooltip-ca-nstab-special": "Batu bu tir aptafu numen zo robetar",
        "tooltip-ca-nstab-project": "Wira va abdumimaks bu",
        "tooltip-ca-nstab-image": "Wira va iyeltakbu",
        "tooltip-ca-nstab-mediawiki": "Wira va bolkstaksa",
        "spambot_username": "Tucuara va MediaWiki \"spam\"\nMediaWiki spam cleanup",
        "spam_reverting": "Dimplekura va ironokaf siatos meruldas va gluyasiki do $1",
        "spam_blanking": "Kot betaks ruldas va gluyasiki do $1, tuvlardara",
+       "pageinfo-toolboxlink": "Bugiva",
        "markaspatrolleddiff": "Marquer comme vérifiée",
        "markaspatrolledtext": "Marquer cet article comme vérifié",
        "markedaspatrolled": "Marqué comme vérifié",
index b0ee53a..9c53418 100644 (file)
        "prefs-displayrc": "Налады паказу",
        "prefs-displaywatchlist": "Налады паказу",
        "prefs-changesrc": "Паказваць зьменаў",
+       "prefs-changeswatchlist": "Паказваць зьменаў",
+       "prefs-pageswatchlist": "Старонкі для назіраньня",
        "prefs-tokenwatchlist": "Токен",
        "prefs-diffs": "Розьніцы вэрсіяў",
        "prefs-help-prefershttps": "Гэтая налада набудзе моц пры наступным уваходзе ў сыстэму.",
index d79f5f9..2ce1a1b 100644 (file)
        "botpasswords-invalid-name": "নির্দিষ্টকৃত ব্যবহারকারী নামটিতে বট পাসওয়ার্ড পৃথকীকারক অক্ষরটি (\"$1\") নেই।",
        "botpasswords-not-exist": "ব্যবহারকারী \"$1\"-এর \"$2\" নামক বট পাসওয়ার্ডটি নেই।",
        "botpasswords-needs-reset": "{{GENDER:$1|ব্যবহারকারী}} \"$1\"-এর \"$2\" নামের বটের জন্য বট পাসওয়ার্ড অবশ্যই পুনঃস্থাপন করা প্রয়োজন।",
+       "botpasswords-locked": "আপনার অ্যাকাউন্ট তালাবদ্ধ হবার কারণে আপনি একটি বট পাসওয়ার্ড দিয়ে প্রবেশ করতে পারবেন না।",
        "resetpass_forbidden": "পাসওয়ার্ড পরিবর্তন করা সম্ভব নয়",
        "resetpass_forbidden-reason": "পাসওয়ার্ড পরিবর্তন করা যাবে না: $1",
        "resetpass-no-info": "এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই অ্যাকাউন্টে প্রবেশ করতে হবে।",
        "subject-preview": "বিষয়ের প্রাকদর্শন:",
        "previewerrortext": "আপনার পরিবর্তনগুলি প্রাকদর্শন করার চেষ্টা করার সময় একটি ত্রুটি ঘটেছে।",
        "blockedtitle": "ব্যবহারকারীকে বাধা দেয়া হয়েছে",
+       "blocked-email-user": "<strong>আপনার ব্যবহারকারী নামকে ইমেল পাঠানো থেকে বাধাদান করা হয়েছে। তবে পূর্বের ন্যায় আপনি এখনো এই উইকির অন্যান্য পাতা সম্পাদনা করতে পারবেন।</strong> আপনি [[Special:MyContributions|অ্যাকাউন্টের অবদানে]] বাধাদানের পূর্ণ বিবরণ দেখতে পারেন।\n\nএই বাধাটি প্রদান করেছেন $1।\n\nপ্রদত্ত কারণ হচ্ছে <em>$2</em>।\n\n* বাধা শুরুর তারিখ: $8\n* বাধা শেষ হওয়ার তারিখ: $6\n* বাধার উদ্দেশ্য: $7\n* বাধার আইডি #$5",
+       "blockedtext-partial": "<strong>আপনার ব্যবহারকারী নাম বা আইপি ঠিকানাকে এই পাতায় সম্পাদনা করা থেকে বাধাদান করা হয়েছে। তবে আপনি এখনো এই উইকির অন্যান্য পাতা সম্পাদনা করতে পারবেন।</strong> আপনি [[Special:MyContributions|অ্যাকাউন্টের অবদানে]] বাধাদানের পূর্ণ বিবরণ দেখতে পারেন।\n\nএই বাধাটি প্রদান করেছেন $1।\n\nপ্রদত্ত কারণ হচ্ছে <em>$2</em>।\n\n* বাধা শুরুর তারিখ: $8\n* বাধা শেষ হওয়ার তারিখ: $6\n* বাধার উদ্দেশ্য: $7\n* বাধার আইডি #$5",
        "blockedtext": "<strong>আপনার ব্যবহারকারী নাম বা আইপি ঠিকানাটিকে সম্পাদনায় বাধাদান করা হয়েছে।</strong>\n\n$1 এই বাধাটি প্রদান করেছেন। বাধার কারণ হিসেবে বলা হয়েছে:<em>$2</em>।\n\n* বাধা শুরুর সময়: $8\n* বাধা উঠিয়ে নেয়ার সময়: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনি $1 অথবা অন্য [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকদের]] সাথে এই বাধা সংক্রান্ত বিষয়ে আলোচনা করতে পারেন।\n\nআপনি \"{{int:emailuser}}\" বৈশিষ্ট্যটি ব্যবহার করতে পারবেন না যদি না আপনার [[Special:Preferences|অ্যাকাউন্টের পছন্দসমূহে]] একটি বৈধ ইমেইল ঠিকানা নির্দিষ্ট না করা হয়ে থাকে এবং আপনাকে এটি ব্যবহার করা থেকে অবরুদ্ধ না করা হয়ে থাকে।\n\nআপনার বর্তমান আইপি ঠিকানা হল $3, এবং আপনার বাধা নং হল #$5।\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।",
        "autoblockedtext": "আপনার আইপি ঠিকানাটিকে স্বয়ংক্রিয়ভাবে সম্পাদনায় বাধাদান করা হয়েছে কারণ এমন আরেকজন ব্যবহারকারী এটি ব্যবহার করেছেন, যাকে $1 বাধা দিয়েছেন।\nযে কারণে বাধা দেওয়া হয়েছে সেটি হল:\n\n:<em>$2</em>\n\n* বাধা শুরুর সময়: $8\n* বাধা শেষের সময়: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনি $1-এর সাথে কিংবা অন্য যেকোন [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকের]] সাথে যোগাযোগ করে এই বাধা সংক্রান্ত বিষয়ে আলোচনা করতে পারেন।\n\nলক্ষ্য করুন, আপনি \"{{int:emailuser}}\" বৈশিষ্ট্যটি ব্যবহার করতে পারবেন না যদি না আপনার [[Special:Preferences|অ্যাকাউন্টের পছন্দসমূহে]] একটি বৈধ ইমেইল ঠিকানা নিবন্ধিত না থাকে এবং আপনাকে এটি ব্যবহার করা থেকে অবরুদ্ধ না করা হয়ে থাকে।\n\nআপনার বর্তমান আইপি ঠিকানা হচ্ছে $3, এবং বাধা নং হল #$5।\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।",
        "systemblockedtext": "আপনার ব্যবহারকারী নাম অথবা আইপি ঠিকানাটিকে স্বয়ংক্রিয়ভাবে মিডিয়াউইকি দ্বারা বাধাদান করা হয়েছে। যে কারণটি দেওয়া হয়েছে, সেটি হল:\n\n:<em>$2</em>\n\n* বাধা শুরুর সময়: $8\n* বাধা উঠিয়ে নেয়ার সময়: $6\n* যাকে বাধাদান করা হয়েছে: $7\n\nআপনার বর্তমান আইপি ঠিকানাটি হল $3।\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।",
        "prefs-advancedwatchlist": "উচ্চতর বিকল্পগুলি",
        "prefs-displayrc": "প্রদর্শনীর পছন্দগুলি",
        "prefs-displaywatchlist": "প্রদর্শনী অপশন",
+       "prefs-changesrc": "পরিবর্তন প্রদর্শন",
+       "prefs-pageswatchlist": "নজরে রাখা পাতা",
        "prefs-tokenwatchlist": "টোকেন",
        "prefs-diffs": "পার্থক্য",
        "prefs-help-prefershttps": "পরবর্তী প্রবেশের পর থেকে এই পরিবর্তনগুলো কার্যকর হবে।",
        "createaccountblock": "অ্যাকাউন্ট সৃষ্টিতে বাধা দেওয়া হয়েছে",
        "emailblock": "ই-মেইল বাধা দেয়া হয়েছে",
        "blocklist-nousertalk": "নিজস্ব আলাপ পাতা সম্পাদনা করতে পারবে না",
+       "blocklist-editing": "সম্পাদনা করছেন",
+       "blocklist-editing-sitewide": "সম্পাদনা করছেন (সাইটব্যাপী)",
        "ipblocklist-empty": "বাধাতালিকা খালি।",
        "ipblocklist-no-results": "অনুরুদ্ধ আইপি ঠিকানা বা ব্যবহারকারী নামটির উপর কোন বাধা নেই।",
        "blocklink": "বাধা দাও",
index db69d1a..047d366 100644 (file)
        "permissionserrorstext": "No tienes permiso para hacer eso, por {{PLURAL:$1|el siguiente motivo|los siguientes motivos}}:",
        "permissionserrorstext-withaction": "No tienes permiso para $2, por {{PLURAL:$1|el siguiente motivo|los siguientes motivos}}:",
        "contentmodelediterror": "No puedes editar esta revisión porque su modelo de contenido es <code>$1</code>, que difiere del modelo actual de contenido de la página <code>$2</code>.",
-       "recreate-moveddeleted-warn": "<strong>Atención: estás volviendo a crear una página que ha sido borrada anteriormente.</strong>\n\nPiensa si es adecuado continuar editando la página.\nA continuación, se proporciona el registro de borrado y traslados de esta página para más información:",
+       "recreate-moveddeleted-warn": "<strong>Atención: estás volviendo a crear una página que ha sido borrada anteriormente.</strong>\n\nComprueba si es adecuado continuar editándola. A continuación se muestra el registro de borrados y traslados de esta página para más información:",
        "moveddeleted-notice": "Esta página ha sido borrada.\nA continuación se muestra como referencia el registro de eliminaciones, protecciones y traslados de la página.",
        "moveddeleted-notice-recent": "Esta página se ha eliminado recientemente (durante las últimas 24 horas).\nA continuación, se muestra el registro de eliminaciones, protecciones y traslados de la página a modo de referencia.",
        "log-fulllog": "Ver el registro completo",
index fceda0e..205460f 100644 (file)
        "logentry-delete-revision-legacy": "$1k {{GENDER:$2|}} $3 orriko berrikusketen ikuspena aldatu egin du",
        "logentry-suppress-delete": "$1 erabiltzaileak $3 orria {{GENDER:$2|ezabatu}} du",
        "logentry-suppress-event": "$1 wikilariak {{GENDER:$2|}} ezkutuan ikusgaitasuna aldatu {{PLURAL:$5|dio erregistroko sarrera bati|die erregistroko $5 sarrerei}} $3n: $4",
-       "logentry-suppress-revision": "$1 wikilariak ikusgaitasuna aldatu {{PLURAL:$5|dio berrikusketari|$5 berrikusketei}} $3 orrian: $4",
+       "logentry-suppress-revision": "$1 wikilariak ikusgaitasuna aldatu {{PLURAL:$5|dio berrikusketari|die $5 berrikusketari}} «$3» orrian: $4",
        "logentry-suppress-event-legacy": "$1k {{GENDER:$2|}} sekretuan $3 sarrera gertaeren ikuspena aldatu egin du",
        "logentry-suppress-revision-legacy": "$1 wikilariak izkutuan $3 orriko berrikusketen ikuspena {{GENDER:$2|aldatu}} egin du",
        "revdelete-content-hid": "edukia ezkutatu da",
index 6f7f4fe..5a9038a 100644 (file)
        "prefs-advancedwatchlist": "אפשרויות מתקדמות",
        "prefs-displayrc": "אפשרויות תצוגה",
        "prefs-displaywatchlist": "אפשרויות תצוגה",
+       "prefs-changesrc": "שינויים שמוצגים",
+       "prefs-changeswatchlist": "שינויים שמוצגים",
+       "prefs-pageswatchlist": "דפים לרשימת המעקב",
        "prefs-tokenwatchlist": "אסימון",
        "prefs-diffs": "הבדלים בין גרסאות",
        "prefs-help-prefershttps": "העדפה זו תיכנס לתוקף בכניסה הבאה לחשבון.",
index 7bc0c6f..8f93a17 100644 (file)
        "prefs-advancedwatchlist": "Optiones avantiate",
        "prefs-displayrc": "Optiones de presentation",
        "prefs-displaywatchlist": "Optiones de presentation",
+       "prefs-changesrc": "Modificationes a monstrar",
+       "prefs-changeswatchlist": "Modificationes a monstrar",
+       "prefs-pageswatchlist": "Paginas a observar",
        "prefs-tokenwatchlist": "Indicio",
        "prefs-diffs": "Differentias",
        "prefs-help-prefershttps": "Iste preferentia habera effecto a partir de tu proxime session.",
index 47b9cc4..b7d4700 100644 (file)
        "prefs-advancedwatchlist": "Напредни нагодувања",
        "prefs-displayrc": "Нагодувања на приказот",
        "prefs-displaywatchlist": "Нагодувања на приказот",
+       "prefs-changesrc": "Прикажани промени",
+       "prefs-changeswatchlist": "Прикажани промени",
+       "prefs-pageswatchlist": "Набљудувани страници",
        "prefs-tokenwatchlist": "Шифра",
        "prefs-diffs": "Разлики",
        "prefs-help-prefershttps": "Поставката ќе се примени следниот пат кога ќе се најавите.",
index b7d4f74..0d4bb69 100644 (file)
        "allinnamespace": "စာမျက်နှာအားလုံး (အမည်ညွှန်း $1)",
        "allpagessubmit": "သွားပါ",
        "allpages-hide-redirects": "ပြန်ညွှန်းများအား ဝှက်ရန်",
+       "cachedspecial-viewing-cached-ttl": "သင်သည် $1 အချိန်ကြာသွားနိုင်သော ဤစာမျက်နှာ၏ cached ဗားရှင်းကို ကြည့်ရှုနေခြင်း ဖြစ်ပါသည်။",
+       "cachedspecial-viewing-cached-ts": "သင်သည် ဤစာမျက်နှာ၏ အမှန်တကယ်မဟုတ်နိုင်သော cached ဗားရှင်းကို ကြည့်ရှုနေခြင်းဖြစ်သည်။",
        "categories": "ကဏ္ဍများ",
        "categories-submit": "ပြသရန်",
        "categoriesfrom": "ဤမှစသော အမျိုးအစားများကို ပြရန် -",
index 1086fcb..7c00514 100644 (file)
        "prefs-advancedwatchlist": "Avanserte alternativer",
        "prefs-displayrc": "Visningsalternativer",
        "prefs-displaywatchlist": "Visningsalternativer",
+       "prefs-changesrc": "Endringer vist",
+       "prefs-changeswatchlist": "Endringer vist",
+       "prefs-pageswatchlist": "Overvåkede sider",
        "prefs-tokenwatchlist": "Merke",
        "prefs-diffs": "Forskjeller",
        "prefs-help-prefershttps": "Denne preferansen vil virke etter neste innlogging.",
        "rcfilters-view-tags-tooltip": "Filtrer resultater med redigeringstagger",
        "rcfilters-view-return-to-default-tooltip": "Tilbake til hovedmenyen for filtre",
        "rcfilters-view-tags-help-icon-tooltip": "Les mer om taggede redigeringer",
-       "rcfilters-liveupdates-button": "Live-oppdateringer",
+       "rcfilters-liveupdates-button": "Oppdateringer i sanntid",
        "rcfilters-liveupdates-button-title-on": "Slå av live-oppdateringer",
        "rcfilters-liveupdates-button-title-off": "Vis nye endringer når de skjer",
        "rcfilters-watchlist-markseen-button": "Merk alle endringer som sett.",
index 40e001b..6a2ad1c 100644 (file)
        "prefs-displaywatchlist": "Opções de exibição",
        "prefs-changesrc": "Mudanças mostradas",
        "prefs-changeswatchlist": "Mudanças mostradas",
+       "prefs-pageswatchlist": "Páginas vigiadas",
        "prefs-tokenwatchlist": "Senha",
        "prefs-diffs": "Diferenças",
        "prefs-help-prefershttps": "Esta preferência terá efeito no seu próximo início de sessão.",
        "tag-mw-blank-description": "Edita em branco uma página",
        "tag-mw-replace": "Substituído",
        "tag-mw-replace-description": "Edições que removem mais de 90% do conteúdo de uma página",
-       "tag-mw-rollback": "Reverter",
+       "tag-mw-rollback": "Reversão",
        "tag-mw-rollback-description": "Edições que revertem edições anteriores usando o link de reversão",
        "tag-mw-undo": "Desfazer",
        "tag-mw-undo-description": "Edições que desfazem edições anteriores usando o link de desfazer",
index 4f03973..eab40f9 100644 (file)
        "prefs-advancedwatchlist": "Opzione avanzate",
        "prefs-displayrc": "Fà vedè l'opzione",
        "prefs-displaywatchlist": "Fà vedè l'opzione",
+       "prefs-changesrc": "Cangiaminde fatte 'ndrucà",
+       "prefs-changeswatchlist": "Cangiaminde fatte 'ndrucà",
+       "prefs-pageswatchlist": "Pàggene ca ste condrolle",
        "prefs-tokenwatchlist": "Gettone",
        "prefs-diffs": "Diff",
        "prefs-help-prefershttps": "Sta preferenze pigghie effette sulamende quanne tràse arrete.",
index 1960002..00ef510 100644 (file)
        "loginreqpagetext": "တႃႇတေတူၺ်းၼႃႈလိၵ်ႈၼႆ ၶႅၼ်းတေႃႈ $1",
        "accmailtitle": "ၶေႃႈလပ်ႉ သူင်ႇၵႂႃႇယဝ်ႉယဝ်ႈ။",
        "newarticle": "(ဢၼ်မႂ်ႇ)",
-       "newarticletext": "ၸဝ်ႈၵဝ်ႇလႆႈၸွမ်းလင်ဝႆႉ ႁဵင်းၵွင်ႉ ၼႃႈလိၵ်ႈ ဢၼ်ဢမ်ႇမီးဝႆႉၼၼ်ႉ။\nတႃႇတေၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ၊ တႄႇပေႃႉသႂ်ႇၵႃႈတီႈ လွၵ်ႈပႃႈတႂ်ႈ \n (တွၼ်ႈတႃႇ လွၼ်ႉၶၢဝ်ႇ တၢင်ႇၸိူဝ်း တူၺ်းၵႃႈတီႈ [$1 help page] ).\nသင်ၸိူဝ်ႉဝႃႈ ၸဝ်ႈၵဝ်ႇ ၽိတ်းတၢင်းသေ ၽႅဝ်မႃးတီႈၼႆႈၼႆ၊ ၼဵၵ်း ပၼ်တူဝ် <strong>ၼဵၼ်ႁူၼ်လင်</strong> ၶွင် တူဝ်ပိုတ်ႇဝႅပ်ႉ ၸဝ်ႈၵဝ်ႇလႄႈ။",
+       "newarticletext": "ၸဝ်ႈၵဝ်ႇလႆႈၸွမ်းလင်ဝႆႉ ႁဵင်းၵွင်ႉ ၼႃႈလိၵ်ႈ ဢၼ်ဢမ်ႇမီးဝႆႉၼၼ်ႉ။\nတႃႇတေၵေႃႇသၢင်ႈ ၼႃႈလိၵ်ႈ၊ တႄႇပေႃႉသႂ်ႇၵႃႈတီႈ လွၵ်ႈပႃႈတႂ်ႈ (တွၼ်ႈတႃႇ လွၼ်ႉၶၢဝ်ႇ တၢင်ႇၸိူဝ်း တူၺ်းၵႃႈတီႈ [$1 help page])။\nသင်ၸိူဝ်ႉဝႃႈ ၸဝ်ႈၵဝ်ႇ ၽိတ်းတၢင်းသေ ၽႅဝ်မႃးတီႈၼႆႈၼႆ၊ ၼဵၵ်း ပၼ်တူဝ် <strong>ၼဵၼ်ႁူၼ်လင်</strong> ၶွင် တူဝ်ပိုတ်ႇဝႅပ်ႉ ၸဝ်ႈၵဝ်ႇလႄႈ။",
        "anontalkpagetext": "----\n<em>ဢၼ်ၼႆႉၼႆႉ မၼ်းပဵၼ်ၼႃႈလိၵ်ႈဢုပ်ႇဢူဝ်း တွၼ်ႈတႃႇ ၽူႈဢၼ်ဢမ်ႇႁဵတ်း ဢၶွင်ႉ ဢမ်ႇၼၼ် ၽူႈဢၼ်ဢမ်ႇမီးဢၶွင်ႉ ဢၼ်ၸိူဝ်းပဵၼ် ၽူႈဢမ်ႇမီး/ဢမ်ႇႁူႉ ၸိုဝ်ႈသဵင်ၶဝ် ၸႂ်ႉၼႆယဝ်ႉ။</em>\nယွၼ်ႉပိူဝ်ႈၼၼ်လႄႈ ႁဝ်းၶႃႈၸင်ႇလႆႈၸႂ်ႉ ႁဵင်းလိၵ်ႈ ဢၢႆႇၽီႇ တွၼ်ႈတႃႇၸႅၵ်ႇလႆႈဝႃႈ ပဵၼ် မၼ်း ႁိုဝ် မၼ်းၼၢင်း ဢၼ်ဝႃႈၼၼ်ႉဢေႃႈ။\nဢၼ်ပဵၼ် ႁဵင်းလိၵ်ႈဢၢႆႇၽီႇၸိူင်ႉၼၼ်ၵေႃႈ ၽူႈၸႂ်ႉတိုဝ်းတင်းၼမ် ၸၢင်ႈထုၵ်ႇၽႄၸႂ်ႉဝႆႉယူႇ။\nသင်ၸိူဝ်ႉဝႃႈ ၸဝ်ႈၵဝ်ႇ ပဵၼ် ၽူႈဢၼ်ဢမ်ႇမီးၸိုဝ်ႈသေ သမ်ႉလႆႈယိၼ်းဝႃႈ လွင်ႈဢုပ်ႇဢူဝ်း ၸိူဝ်းဢၼ်ဢမ်ႇၵပ်းၵၢႆႇၸဝ်ႈၵဝ်ႇၼၼ်ႉ မီးလွင်ႈတုမ်ႉတေႃႇတင်းၸဝ်ႈၵဝ်ႇၼႆ ၸိုင် [[Special:CreateAccount|ၵေႃႇသၢင်ႈဢၶွင်ႉ ဢၼ်ၼိုင်ႈ]] ဢမ်ႇၼၼ်  [[Special:UserLogin|ၶဝ်ႈလွၵ်ႉဢိၼ်ႇ]]သေၵေႃႈ ၸဝ်ႈၵဝ်ႇၸၢင်ႈယူႇႁၢင်ႁၢင်ႇၵၼ်တင်း ၽူႈဢမ်ႇမီးၸိုဝ်ႈ တၢင်ႇၸိူဝ်းၼၼ်ႉလႆႈယူႇၶႃႈ။",
        "noarticletext": "ၼႂ်းၼႃႈၼႆႉယင်းဢမ်ႇမီးလိၵ်ႈသင်တေႃႈလဵဝ်။\nသူၸၢင်ႈ [[Special:Search/{{PAGENAME}}|ႁႃ ႁူဝ်ၶေႃႈၼႃႈလိၵ်ႈၼႆႉ]] ၼႂ်းတၢင်ႇၼႃႈ၊\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ၶူၼ်ႉႁႃ logs ဢၼ်ၵွင်ႉၵၢႆႇၵၼ်],\nဢမ်ႇၼၼ် [{{fullurl:{{FULLPAGENAME}}|action=edit}} သၢင်ႈၼႃႈၼႆႉ]</span>။",
        "noarticletext-nopermission": "ၼႂ်းၼႃႈၼႆႉယင်းဢမ်ႇမီးလိၵ်ႈသင်တေႃႈလဵဝ်။\nသူၸၢင်ႈ [[Special:Search/{{PAGENAME}}|ႁႃ ႁူဝ်ၶေႃႈၼႆႉ]] ၼႂ်းတၢင်ႇၼႃႈ၊\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ၶူၼ်ႉႁႃ logs ဢၼ်ၵဵဝ်ႇၵွင်ႉၵၼ်],\nဢမ်ႇၼၼ် [{{fullurl:{{FULLPAGENAME}}|action=edit}} မူၼ်ႉမႄးၼႃႈၼႆႉ]</span>။",
        "group-autoconfirmed": "ၽူႈၸႂ်ႉတိုဝ်း ၸိူဝ်းၼႄႉၼွၼ်းတူဝ်ႁင်းၵူၺ်း",
        "group-bot": "ပွတ်ႉ",
        "group-sysop": "ၽူႈၵုမ်းၵၢၼ်ၶဝ်",
+       "group-interface-admin": "ၽူႈၵုမ်းၵမ်ၽၢင်ႁၢင်ႈ",
        "group-bureaucrat": "ၸဝ်ႈၼႃႈတီႈၶဝ်",
        "group-suppress": "ၽူႈတဵၵ်းတဵင်ၶဝ်",
        "group-all": "(တင်းမူတ်း)",
        "grouppage-autoconfirmed": "{{ns:project}}:ၽူႈၸႂ်ႉတိုဝ်း ၸိူဝ်းၼႄႉၼွၼ်းတူဝ်ႁင်းၵူၺ်း",
        "grouppage-bot": "{{ns:project}}:ပွတ်ႉၶဝ်",
        "grouppage-sysop": "{{ns:project}}:ၽူႈၵုမ်းၵၢၼ်ၶဝ်",
+       "grouppage-interface-admin": "{{ns:project}}:ၽူႈၵုမ်းၵမ်ၽၢင်ႁၢင်ႈ",
        "grouppage-bureaucrat": "{{ns:project}}:ၸဝ်ႈၼႃႈတီႈၶဝ်",
        "grouppage-suppress": "{{ns:project}}:တဵၵ်းတဵင်",
        "right-read": "လူ ၼႃႈလိၵ်ႈ",
index 87502b6..f49f441 100644 (file)
        "loginlanguagelabel": "Језик: $1",
        "suspicious-userlogout": "Ваш захтев за одјаву је одбијен јер изгледа да га је послао покварени прегледач или кеширани прокси.",
        "createacct-another-realname-tip": "Право име је опционално.\nАко одаберете да га наведете, биће коришћено за приписивање вашег рада.",
-       "pt-login": "Ð\9fÑ\80иÑ\98авиÑ\82е Ñ\81е",
+       "pt-login": "Ð\9fÑ\80иÑ\98ава",
        "pt-login-button": "Пријави ме",
        "pt-login-continue-button": "Настави пријављивање",
-       "pt-createaccount": "Ð\9eÑ\82воÑ\80иÑ\82е Ð½Ð°Ð»Ð¾Ð³",
+       "pt-createaccount": "Ð\9eÑ\82ваÑ\80аÑ\9aе Ð½Ð°Ð»Ð¾Ð³Ð°",
        "pt-userlogout": "Одјави ме",
        "php-mail-error-unknown": "Непозната грешка у функцији PHP mail().",
        "user-mail-no-addy": "Покушали сте да пошаљете имејл без имејл-адресе.",
index 87983bb..a141d52 100644 (file)
        "prefs-advancedwatchlist": "Розширені налаштування",
        "prefs-displayrc": "Налаштування показу",
        "prefs-displaywatchlist": "Налаштування показу",
+       "prefs-changesrc": "Показані зміни",
+       "prefs-changeswatchlist": "Показані зміни",
        "prefs-tokenwatchlist": "Токен",
        "prefs-diffs": "Різниці версій",
        "prefs-help-prefershttps": "Цей параметр набуде чинності при вашому наступному вході у систему.",
index d29a9b9..9260ea0 100644 (file)
        "group-interface-admin": "介面管理員",
        "group-bureaucrat": "行政員",
        "group-suppress": "監督員",
-       "group-all": "(全部)",
+       "group-all": "(全部)",
        "group-user-member": "{{GENDER:$1|使用者}}",
        "group-autoconfirmed-member": "自動確認使用者",
        "group-bot-member": "機器人",
index 587f6ea..b5e2c5e 100644 (file)
@@ -359,6 +359,7 @@ $magicWords = [
        'filepath'                => [ 0, 'FILEPATH:' ],
        'tag'                     => [ 0, 'tag' ],
        'hiddencat'               => [ 1, '__HIDDENCAT__' ],
+       'expectunusedcategory'    => [ 1, '__EXPECT_UNUSED_CATEGORY__', '__EXPECT_UNUSED_CAT__', '__EXPECTUNUSEDCATEGORY__', '__EXPECTUNUSEDCAT__' ],
        'pagesincategory'         => [ 1, 'PAGESINCATEGORY', 'PAGESINCAT' ],
        'pagesize'                => [ 1, 'PAGESIZE' ],
        'index'                   => [ 1, '__INDEX__' ],
index b0737e8..cb1f2bd 100644 (file)
@@ -175,6 +175,7 @@ return [
        ],
        'jquery.async' => [
                'scripts' => 'resources/lib/jquery.async.js',
+               'deprecated' => true,
        ],
        'jquery.byteLength' => [
                'scripts' => 'resources/src/jquery/jquery.byteLength.js',
index 7bec6f4..a5efd7c 100644 (file)
        .mw-htmlform-matrix {
                border-spacing: 0 2px;
 
+               th {
+                       font-weight: normal;
+               }
+
                td {
                        padding: @ooui-padding-vertical @ooui-padding-horizontal;
                        text-align: center;
index 0f331ee..1c69a75 100644 (file)
@@ -19,6 +19,9 @@ table.mw-htmlform-nolabel td.mw-label {
 }
 
 /* HTMLCheckMatrix */
+.mw-htmlform-matrix th {
+       font-weight: normal;
+}
 
 .mw-htmlform-matrix td {
        padding-left: 0.5em;
diff --git a/resources/src/mediawiki.rcfilters/images/clip.svg b/resources/src/mediawiki.rcfilters/images/clip.svg
deleted file mode 100644 (file)
index f011042..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M17.5 4.5v13.2L12 13.5l-5.5 4.2V4.5zM5 21l7-6 7 6V3H5z" fill-rule="evenodd"/>
-</svg>
diff --git a/resources/src/mediawiki.rcfilters/images/pending.gif b/resources/src/mediawiki.rcfilters/images/pending.gif
deleted file mode 100644 (file)
index 1194eed..0000000
Binary files a/resources/src/mediawiki.rcfilters/images/pending.gif and /dev/null differ
diff --git a/resources/src/mediawiki.rcfilters/images/pushPin.svg b/resources/src/mediawiki.rcfilters/images/pushPin.svg
deleted file mode 100644 (file)
index c4a1341..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M17.445 12.225c-.813-.935-1.775-.739-2.883-1.768-.55-.511-.498-2.36-.498-2.36s-.041-1.836.524-2.401c.39-.39 1.076-.49 1.475-.883a.973.973 0 0 0 .217-.317c.007-.013.014-.023.018-.035.035-.092.054-.2.064-.316.003-.03.017-.055.017-.085 0-.005-.003-.01-.004-.015.001-.008.004-.014.004-.022 0-.02-.015-.03-.017-.048a1.052 1.052 0 0 0-1.043-.974H8.681c-.555 0-.997.43-1.043.974-.002.018-.017.028-.017.048 0 .008.003.014.003.022 0 .006-.003.01-.003.015 0 .03.014.055.017.085.01.116.029.224.064.316.004.012.012.022.018.035a.965.965 0 0 0 .217.317c.399.393 1.084.493 1.475.883.565.565.523 2.401.523 2.401s.053 1.849-.497 2.36c-1.108 1.03-2.07.833-2.883 1.768C5.979 12.887 6 14 6 14h5.333v4.578L12 21l.668-2.422V14H18s.02-1.113-.555-1.775z"/>
-</svg>
diff --git a/resources/src/mediawiki.rcfilters/images/unClip.svg b/resources/src/mediawiki.rcfilters/images/unClip.svg
deleted file mode 100644 (file)
index 2e3ebcb..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M5 21l7-6 7 6V3H5z" fill-rule="evenodd"/>
-</svg>
index 01165ca..ba576fb 100644 (file)
@@ -21,6 +21,8 @@
        mw.widgets.CheckMatrixWidget = function MWWCheckMatrixWidget( config ) {
                var $headRow = $( '<tr>' ),
                        $table = $( '<table>' ),
+                       $thead = $( '<thead>' ),
+                       $tbody = $( '<tbody>' ),
                        widget = this;
                config = config || {};
 
@@ -42,9 +44,9 @@
                // Iterate over the columns object (ignore the value)
                // eslint-disable-next-line no-restricted-properties
                $.each( this.columns, function ( columnLabel ) {
-                       $headRow.append( $( '<td>' ).html( columnLabel ) );
+                       $headRow.append( $( '<th>' ).html( columnLabel ) );
                } );
-               $table.append( $headRow );
+               $thead.append( $headRow );
 
                // Build table
                // eslint-disable-next-line no-restricted-properties
                                $row.append( $( '<td>' ).append( checkbox.$element ) );
                        } );
 
-                       $table.append( $row );
+                       $tbody.append( $row );
                } );
+               $table
+                       .addClass( 'mw-htmlform-matrix mw-widget-checkMatrixWidget-matrix' )
+                       .append( $thead, $tbody );
 
                this.$element
                        .addClass( 'mw-widget-checkMatrixWidget' )
index 5f1bf0c..9f696c0 100644 (file)
@@ -60,4 +60,46 @@ class WikiCategoryPageTest extends MediaWikiLangTestCase {
 
                ScopedCallback::consume( $scopedOverride );
        }
+
+       /**
+        * @covers WikiCategoryPage::isExpectedUnusedCategory
+        */
+       public function testExpectUnusedCategory_PropertyNotSet() {
+               $title = Title::makeTitle( NS_CATEGORY, 'CategoryPage' );
+               $categoryPage = WikiCategoryPage::factory( $title );
+
+               $pageProps = $this->getMockPageProps();
+               $pageProps->expects( $this->once() )
+                       ->method( 'getProperties' )
+                       ->with( $title, 'expectunusedcategory' )
+                       ->will( $this->returnValue( [] ) );
+
+               $scopedOverride = PageProps::overrideInstance( $pageProps );
+
+               $this->assertFalse( $categoryPage->isExpectedUnusedCategory() );
+
+               ScopedCallback::consume( $scopedOverride );
+       }
+
+       /**
+        * @dataProvider provideCategoryContent
+        * @covers WikiCategoryPage::isExpectedUnusedCategory
+        */
+       public function testExpectUnusedCategory_PropertyIsSet( $isExpectedUnusedCategory ) {
+               $categoryTitle = Title::makeTitle( NS_CATEGORY, 'CategoryPage' );
+               $categoryPage = WikiCategoryPage::factory( $categoryTitle );
+               $returnValue = $isExpectedUnusedCategory ? [ $categoryTitle->getArticleID() => '' ] : [];
+
+               $pageProps = $this->getMockPageProps();
+               $pageProps->expects( $this->once() )
+                       ->method( 'getProperties' )
+                       ->with( $categoryTitle, 'expectunusedcategory' )
+                       ->will( $this->returnValue( $returnValue ) );
+
+               $scopedOverride = PageProps::overrideInstance( $pageProps );
+
+               $this->assertEquals( $isExpectedUnusedCategory, $categoryPage->isExpectedUnusedCategory() );
+
+               ScopedCallback::consume( $scopedOverride );
+       }
 }