Merge "mediawiki.api: Remove deprecated module aliases"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 22 Jan 2019 21:56:51 +0000 (21:56 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 22 Jan 2019 21:56:51 +0000 (21:56 +0000)
55 files changed:
RELEASE-NOTES-1.33
autoload.php
docs/extension.schema.v1.json
docs/extension.schema.v2.json
includes/GlobalFunctions.php
includes/api/i18n/de.json
includes/htmlform/HTMLSelectLanguageField.php [deleted file]
includes/htmlform/fields/HTMLSelectLanguageField.php [new file with mode: 0644]
includes/http/MWHttpRequest.php
includes/installer/WebInstallerOutput.php
includes/installer/i18n/ca.json
includes/installer/i18n/ko.json
includes/libs/rdbms/database/DatabasePostgres.php
includes/libs/rdbms/field/PostgresField.php
includes/shell/Command.php
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bqi.json
languages/i18n/ca.json
languages/i18n/cdo.json
languages/i18n/es.json
languages/i18n/exif/ro.json
languages/i18n/fi.json
languages/i18n/gom-latn.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hr.json
languages/i18n/hy.json
languages/i18n/it.json
languages/i18n/lv.json
languages/i18n/mk.json
languages/i18n/mr.json
languages/i18n/nb.json
languages/i18n/pnb.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/tcy.json
languages/i18n/ur.json
package.json
resources/src/jquery/jquery.suggestions.js
resources/src/mediawiki.action/mediawiki.action.view.dblClickEdit.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.RclTargetPageWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListItemWidget.js
resources/src/mediawiki.special.apisandbox/apisandbox.js
resources/src/mediawiki.widgets.datetime/CalendarWidget.js
resources/src/mediawiki.widgets.datetime/CalendarWidget.less
resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js
resources/src/mediawiki.widgets.datetime/mediawiki.widgets.datetime.definitions.less
resources/src/mediawiki.widgets/mw.widgets.DateInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.SearchInputWidget.js
tests/phpunit/includes/api/RandomImageGenerator.php
tests/phpunit/includes/libs/composer/ComposerInstalledTest.php
tests/phpunit/includes/libs/composer/ComposerJsonTest.php
tests/phpunit/includes/libs/composer/ComposerLockTest.php

index 9a46ac4..5b8624a 100644 (file)
@@ -20,7 +20,6 @@ production.
   IP addresses, internationalized domain names, and possibly mailto links.
 * (T193868) $wgChangeTagsSchemaMigrationStage — This temporary setting, added in
   MediaWiki 1.32, now defaults to MIGRATION_NEW instead of MIGRATION_WRITE_BOTH.
-* …
 
 ==== Removed configuration ====
 * (T199334) $wgTagStatisticsNewTable — This temporary setting, added in
@@ -31,7 +30,6 @@ production.
   $wgTidyConf, $wgTidyOpts, $wgTidyInternal, and $wgDebugTidy, all
   deprecated since 1.26, have now all been removed. The $wgTidyConfig
   setting remains only for Remex experimental features or debugging.
-* …
 
 === New features in 1.33 ===
 * (T96041) __EXPECTUNUSEDCATEGORY__ on a category page causes the category
@@ -41,14 +39,12 @@ production.
   additional information about the authentication event.
 * TextContent::getText() was introduced as a replacement for
   Content::getNativeData() for text-based content models.
-* …
 
 === External library changes in 1.33 ===
 
 ==== New external libraries ====
 * Added wikimedia/password-blacklist 0.1.4.
 * Added guzzlehttp/guzzle 6.3.3.
-* …
 
 ==== Changed external libraries ====
 * Updated wikimedia/xmp-reader from 0.6.0 to 0.6.1.
@@ -57,15 +53,12 @@ production.
   * The deprecated IPSet\IPSet alias was removed, Wikimedia\IPSet must be
     used instead.
 * Updated qunitjs from 2.6.2 to 2.9.1.
-* …
 
 ==== Removed external libraries ====
-* …
 
 === Bug fixes in 1.33 ===
 * (T164211) Special:UserRights could sometimes fail with a
   "conflict detected" error when there weren't any conflicts.
-* …
 
 === Action API changes in 1.33 ===
 * (T198913) Added 'ApiOptions' hook.
@@ -97,7 +90,6 @@ production.
   hyphen. Methods such as ApiBase::dieWithError() and
   ApiMessageTrait::setApiCode() will throw an InvalidArgumentException if
   passed a bad code.
-* …
 
 === Languages updated in 1.33 ===
 MediaWiki supports over 350 languages. Many localisations are updated regularly.
@@ -217,14 +209,15 @@ because of Phabricator reports.
   Wikimedia\Services. The old name is still supported, but deprecated.
 * (T155582) Content::getNativeData has been deprecated. Please use model-
   specific getters, such as TextContent::getText().
-* …
+* The class WebInstallerOutput is now marked as @private.
+* (T209699) The jquery.async module has been deprecated. JavaScript code that
+  needs asynchronous behaviour should use Promises.
 
 === Other changes in 1.33 ===
 * (T208871) The hard-coded Google search form on the database error page was
   removed.
 * (T201747) Html::openElement() warns if given an element name wiht a space
   in it.
-* …
 
 == Compatibility ==
 MediaWiki 1.33 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
index afc187f..cc11829 100644 (file)
@@ -604,7 +604,7 @@ $wgAutoloadLocalClasses = [
        'HTMLRestrictionsField' => __DIR__ . '/includes/htmlform/fields/HTMLRestrictionsField.php',
        'HTMLSelectAndOtherField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectAndOtherField.php',
        'HTMLSelectField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectField.php',
-       'HTMLSelectLanguageField' => __DIR__ . '/includes/htmlform/HTMLSelectLanguageField.php',
+       'HTMLSelectLanguageField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLanguageField.php',
        'HTMLSelectLimitField' => __DIR__ . '/includes/htmlform/fields/HTMLSelectLimitField.php',
        'HTMLSelectNamespace' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespace.php',
        'HTMLSelectNamespaceWithButton' => __DIR__ . '/includes/htmlform/fields/HTMLSelectNamespaceWithButton.php',
index 7e42035..dc0abdc 100644 (file)
@@ -72,7 +72,7 @@
                                                        "description": "Version constraint string against PHP."
                                                }
                                        },
-                                       "patternProprties": {
+                                       "patternProperties": {
                                                "^ext-": {
                                                        "type": "string",
                                                        "description": "Required PHP extension.",
index c5c3b5d..9da636f 100644 (file)
@@ -73,7 +73,7 @@
                                                        "description": "Version constraint string against PHP."
                                                }
                                        },
-                                       "patternProprties": {
+                                       "patternProperties": {
                                                "^ext-": {
                                                        "type": "string",
                                                        "description": "Required PHP extension.",
index 9f29114..a74060c 100644 (file)
@@ -148,6 +148,7 @@ function wfArrayDiff2_cmp( $a, $b ) {
  * @return array
  */
 function wfArrayFilter( array $arr, callable $callback ) {
+       wfDeprecated( __FUNCTION__, '1.32' );
        return array_filter( $arr, $callback, ARRAY_FILTER_USE_BOTH );
 }
 
@@ -160,6 +161,7 @@ function wfArrayFilter( array $arr, callable $callback ) {
  * @return array
  */
 function wfArrayFilterByKey( array $arr, callable $callback ) {
+       wfDeprecated( __FUNCTION__, '1.32' );
        return array_filter( $arr, $callback, ARRAY_FILTER_USE_KEY );
 }
 
index f626d2b..081ad94 100644 (file)
        "apihelp-query+revisions+base-paramvalue-prop-content": "Inhalt eines jeden Versionsschlitzes.",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "Markierungen für die Version.",
        "apihelp-query+revisions+base-paramvalue-prop-roles": "Die Liste enthält Schlitzregeln, die in der Version vorhanden sind.",
+       "apihelp-query+search-summary": "Führt eine Volltextsuche aus.",
        "apihelp-query+search-param-what": "Welcher Suchtyp ausgeführt werden soll.",
        "apihelp-query+search-param-info": "Welche Metadaten zurückgegeben werden sollen.",
        "apihelp-query+search-param-prop": "Eigenschaften zur Rückgabe:",
        "apihelp-query+search-param-qiprofile": "Zu verwendendes anfrageunabhängiges Profil (wirkt sich auf den Ranking-Algorithmus aus).",
        "apihelp-query+search-paramvalue-prop-wordcount": "Ergänzt den Wortzähler der Seite.",
        "apihelp-query+search-paramvalue-prop-extensiondata": "Ergänzt zusätzliche von Erweiterungen erzeugte Daten.",
+       "apihelp-query+search-paramvalue-prop-hasrelated": "Ignoriert.",
        "apihelp-query+search-param-limit": "Wie viele Seiten insgesamt zurückgegeben werden sollen.",
        "apihelp-query+search-param-sort": "Legt die Sortierreihenfolge der zurückgegebenen Ergebnisse fest.",
        "apihelp-query+search-example-simple": "Nach <kbd>meaning</kbd> suchen.",
diff --git a/includes/htmlform/HTMLSelectLanguageField.php b/includes/htmlform/HTMLSelectLanguageField.php
deleted file mode 100644 (file)
index 98cf3b1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-/**
- * Language select field.
- */
-class HTMLSelectLanguageField extends HTMLSelectField {
-       public function __construct( $params ) {
-               parent::__construct( $params );
-
-               if ( $this->mParent instanceof HTMLForm ) {
-                       $config = $this->mParent->getConfig();
-                       $languageCode = $config->get( 'LanguageCode' );
-               } else {
-                       global $wgLanguageCode;
-                       $languageCode = $wgLanguageCode;
-               }
-
-               $languages = Language::fetchLanguageNames( null, 'mw' );
-
-               // Make sure the site language is in the list;
-               // a custom language code might not have a defined name…
-               if ( !array_key_exists( $languageCode, $languages ) ) {
-                       $languages[$languageCode] = $languageCode;
-               }
-
-               ksort( $languages );
-
-               foreach ( $languages as $code => $name ) {
-                       $this->mParams['options'][$code . ' - ' . $name] = $code;
-               }
-
-               if ( !array_key_exists( 'default', $params ) ) {
-                       $this->mParams['default'] = $languageCode;
-               }
-       }
-}
diff --git a/includes/htmlform/fields/HTMLSelectLanguageField.php b/includes/htmlform/fields/HTMLSelectLanguageField.php
new file mode 100644 (file)
index 0000000..98cf3b1
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ * Language select field.
+ */
+class HTMLSelectLanguageField extends HTMLSelectField {
+       public function __construct( $params ) {
+               parent::__construct( $params );
+
+               if ( $this->mParent instanceof HTMLForm ) {
+                       $config = $this->mParent->getConfig();
+                       $languageCode = $config->get( 'LanguageCode' );
+               } else {
+                       global $wgLanguageCode;
+                       $languageCode = $wgLanguageCode;
+               }
+
+               $languages = Language::fetchLanguageNames( null, 'mw' );
+
+               // Make sure the site language is in the list;
+               // a custom language code might not have a defined name…
+               if ( !array_key_exists( $languageCode, $languages ) ) {
+                       $languages[$languageCode] = $languageCode;
+               }
+
+               ksort( $languages );
+
+               foreach ( $languages as $code => $name ) {
+                       $this->mParams['options'][$code . ' - ' . $name] = $code;
+               }
+
+               if ( !array_key_exists( 'default', $params ) ) {
+                       $this->mParams['default'] = $languageCode;
+               }
+       }
+}
index 2cf5320..1991239 100644 (file)
@@ -466,6 +466,7 @@ abstract class MWHttpRequest implements LoggerAwareInterface {
         * request has been executed.  Because some headers
         * (e.g. Set-Cookie) can appear more than once the, each value of
         * the associative array is an array of the values given.
+        * Header names are always in lowercase.
         *
         * @return array
         */
@@ -480,7 +481,7 @@ abstract class MWHttpRequest implements LoggerAwareInterface {
        /**
         * Returns the value of the given response header.
         *
-        * @param string $header
+        * @param string $header case-insensitive
         * @return string|null
         */
        public function getResponseHeader( $header ) {
index 950aaf7..ae07d0c 100644 (file)
@@ -31,6 +31,7 @@
  *
  * @ingroup Deployment
  * @since 1.17
+ * @private
  */
 class WebInstallerOutput {
 
@@ -166,7 +167,7 @@ class WebInstallerOutput {
 
                $rlContext = new ResourceLoaderContext( $resourceLoader, new FauxRequest( [
                                'debug' => 'true',
-                               'lang' => $this->getLanguageCode(),
+                               'lang' => $this->getLanguage()->getCode(),
                                'only' => 'styles',
                ] ) );
 
@@ -220,21 +221,13 @@ class WebInstallerOutput {
        }
 
        /**
-        * @return string
-        */
-       public function getDir() {
-               global $wgLang;
-
-               return is_object( $wgLang ) ? $wgLang->getDir() : 'ltr';
-       }
-
-       /**
-        * @return string
+        * @since 1.33
+        * @return Language
         */
-       public function getLanguageCode() {
+       private function getLanguage() {
                global $wgLang;
 
-               return is_object( $wgLang ) ? $wgLang->getCode() : 'en';
+               return is_object( $wgLang ) ? $wgLang : Language::factory( 'en' );
        }
 
        /**
@@ -242,8 +235,8 @@ class WebInstallerOutput {
         */
        public function getHeadAttribs() {
                return [
-                       'dir' => $this->getDir(),
-                       'lang' => LanguageCode::bcp47( $this->getLanguageCode() ),
+                       'dir' => $this->getLanguage()->getDir(),
+                       'lang' => $this->getLanguage()->getHtmlCode(),
                ];
        }
 
@@ -287,7 +280,7 @@ class WebInstallerOutput {
        <?php echo Html::linkedScript( 'config.js' ) . "\n"; ?>
 </head>
 
-<?php echo Html::openElement( 'body', [ 'class' => $this->getDir() ] ) . "\n"; ?>
+<?php echo Html::openElement( 'body', [ 'class' => $this->getLanguage()->getDir() ] ) . "\n"; ?>
 <div id="mw-page-base"></div>
 <div id="mw-head-base"></div>
 <div id="content" class="mw-body">
index 797fdc1..35088ed 100644 (file)
@@ -68,9 +68,9 @@
        "config-apc": "L'[https://secure.php.net/apc APC] està instal·lat",
        "config-apcu": "L'[https://secure.php.net/apcu APCu] està instal·lat",
        "config-wincache": "[https://www.iis.net/downloads/microsoft/wincache-extension WinCache] està instal·lat",
-       "config-diff3-bad": "No s'ha trobat el GNU diff3.",
+       "config-diff3-bad": "No s'ha trobat el GNU diff3. Podeu ignorar-ho per ara, però us podeu trobar amb conflictes d'edició més habitualment.",
        "config-git": "S'ha trobat el programari de control de versions Git: <code>$1</code>.",
-       "config-git-bad": "No s'ha trobat el programari de control de versions Git.",
+       "config-git-bad": "No s'ha trobat el programari de control de versions Git. Podeu ignorar-ho per ara, però la pàgina Especial:Versió no mostrarà els resums de publicacions.",
        "config-imagemagick": "S'ha trobat ImageMagick: <code>$1</code>.\nS'habilitaran les miniatures d'imatges si habiliteu les càrregues.",
        "config-gd": "S'ha trobat la biblioteca gràfica GD integrada.\nS'habilitaran les miniatures d'imatges si habiliteu les càrregues.",
        "config-no-scaling": "No s'ha pogut trobar la biblioteca GD o ImageMagick.\nS'inhabilitaran les miniatures de les imatges.",
        "config-install-pg-plpgsql": "S'està comprovant si hi ha llenguatge PL/pgSQL",
        "config-pg-no-plpgsql": "Necessiteu instal·lar l'idioma PL/pgSQL a la base de dades $1",
        "config-pg-no-create-privs": "El compte que heu especificat per a la instal·lació no té suficients permisos per crear un compte.",
+       "config-pg-not-in-role": "El compte que heu especificat de l'usuari web ja existeix.\nEl compte que heu especificat per a la instal·lació no és un superusuari i és no és un mebre del grup d'usuaris web; per tant, no pot crear els objectes que pertanyen a l'usuari web.\n\nAra per ara, MediaWiki necessita que les taules pertanyin a l'usuari web. Especifiqueu un altre nom de compte web, o feu clic a «Enrere» i especifiqueu un usuari d'instal·lació amb els privilegis adequats.",
        "config-install-user": "S'està creant l'usuari de la base de dades",
        "config-install-user-alreadyexists": "L'usuari «$1» ja existeix",
        "config-install-user-create-failed": "La creació de l'usuari «$1» ha fallat: $2",
index 6839c22..1a2aa5b 100644 (file)
@@ -12,7 +12,8 @@
                        "Macofe",
                        "Mooozi",
                        "Ykhwong",
-                       "Jerrykim306"
+                       "Jerrykim306",
+                       "Comjun04"
                ]
        },
        "config-desc": "미디어위키를 위한 설치 관리자",
@@ -75,7 +76,7 @@
        "config-mod-security": "<strong>경고:</strong> 웹 서버에 [https://modsecurity.org/ mod_security]가 허용되었습니다. 잘못 설정된 경우 미디어위키나 사용자가 임의의 내용을 게시할 수 있는 다른 소프트웨어에 대한 문제를 일으킬 수 있습니다.\n[https://modsecurity.org/documentation/ mod_security] 문서를 참고하거나 임의의 오류가 발생할 경우 호스트의 지원 요청에 문의하십시오.",
        "config-diff3-bad": "GNU diff3를 찾을 수 없습니다.",
        "config-git": "Git 버전 관리 소프트웨어를 찾았습니다: <code>$1</code>.",
-       "config-git-bad": "Git 버전 관리 소프트웨어를 찾을 수 없습니다.",
+       "config-git-bad": "Git 버전 관리 소프트웨어를 찾을 수 없습니다. 당신은 이 메세지를 무시할 수 있습니다. 특수:버전이 커밋 해시를 표시하지 않을 것임을 기억하세요.",
        "config-imagemagick": "ImageMagick를 찾았습니다: <code>$1</code>.\n올리기를 활성화할 경우 그림 섬네일이 활성화됩니다.",
        "config-gd": "내장된 GD 그래픽 라이브러리를 찾았습니다.\n올리기를 활성화할 경우 그림 섬네일이 활성화됩니다.",
        "config-no-scaling": "GD 라이브러리나 ImageMagick를 찾을 수 없습니다.\n그림 섬네일이 비활성화됩니다.",
index 5f04e39..0935d5a 100644 (file)
@@ -816,7 +816,7 @@ __INDEXATTR__;
                        . ' WHERE relkind = \'r\''
                        . ' AND nspname = ' . $this->addQuotes( $this->getCoreSchema() )
                        . ' AND relname = ' . $this->addQuotes( $oldName )
-                       . ' AND adsrc LIKE \'nextval(%\'',
+                       . ' AND pg_get_expr(adbin, adrelid) LIKE \'nextval(%\'',
                        $fname
                );
                $row = $this->fetchObject( $res );
@@ -851,10 +851,10 @@ __INDEXATTR__;
                        }
 
                        $oid = $this->fetchObject( $res )->oid;
-                       $res = $this->query( 'SELECT adsrc FROM pg_attribute a'
+                       $res = $this->query( 'SELECT pg_get_expr(adbin, adrelid) AS adsrc FROM pg_attribute a'
                                . ' JOIN pg_attrdef d ON (a.attrelid=d.adrelid and a.attnum=d.adnum)'
                                . " WHERE a.attrelid = $oid"
-                               . ' AND adsrc LIKE \'nextval(%\'',
+                               . ' AND pg_get_expr(adbin, adrelid) LIKE \'nextval(%\'',
                                $fname
                        );
                        $row = $this->fetchObject( $res );
index 53c3d33..7596a3b 100644 (file)
@@ -17,7 +17,7 @@ class PostgresField implements Field {
 SELECT
  attnotnull, attlen, conname AS conname,
  atthasdef,
- adsrc,
pg_get_expr(adbin, adrelid) AS adsrc,
  COALESCE(condeferred, 'f') AS deferred,
  COALESCE(condeferrable, 'f') AS deferrable,
  CASE WHEN typname = 'int2' THEN 'smallint'
index 2afc548..d504611 100644 (file)
@@ -553,4 +553,15 @@ class Command {
 
                return new Result( $retval, $buffers[1], $buffers[2] );
        }
+
+       /**
+        * Returns the final command line before environment/limiting, etc are applied.
+        * Use string conversion only for debugging, don't try to pass this to
+        * some other execution medium.
+        *
+        * @return string
+        */
+       public function __toString() {
+               return "#Command: {$this->command}";
+       }
 }
index 8d92b8e..e265d17 100644 (file)
        "pageswithprop-sortbyvalue": "Сартаваць паводле значэньня ўласьцівасьці",
        "pageswithprop-submit": "Паказаць",
        "pageswithprop-prophidden-long": "доўгае тэкставае значэньне ўласьцівасьці схаванае ($1)",
-       "pageswithprop-prophidden-binary": "двайковае значэньне ўласьцівасьці схавана ($1)",
+       "pageswithprop-prophidden-binary": "двайковае значэньне ўласьцівасьці схаванае ($1)",
        "doubleredirects": "Двайныя перанакіраваньні",
        "doubleredirectstext": "На гэтай старонцы пададзены сьпіс перанакіраваньняў на іншыя перанакіраваньні. Кожны радок утрымлівае спасылкі на першае і другое перанакіраваньне, а таксама мэтавую старонку другога перанакіраваньня, якая звычайна зьяўляецца «сапраўднай» мэтавай старонкай, куды павіннае спасылацца першае перанакіраваньне.\n<del>Закрэсьленыя</del> элемэнты былі выпраўленыя.",
        "double-redirect-fixed-move": "[[$1]] была перанесеная.\nСтаронка аўтаматычна абноўленая і цяпер перанакіроўвае на [[$2]].",
index 0db509d..613f5c9 100644 (file)
        "pager-older-n": "{{PLURAL:$1|по-стара 1|по-стари $1}}",
        "suppress": "Подтискане",
        "querypage-disabled": "Тази специална страница е изключена, защото затруднява производителността на уикито.",
-       "apihelp": "Помощ за API",
-       "apihelp-no-such-module": "Модул \"$1\" не беше намерен.",
+       "apihelp": "Помощ за приложението",
+       "apihelp-no-such-module": "Модул „$1“ не беше намерен.",
        "apisandbox": "Пясъчник за API",
        "apisandbox-submit": "Направи запитване",
        "apisandbox-reset": "Изчистване",
index 44e3390..d94f48b 100644 (file)
        "protect_change": "آلإشت کونين",
        "unprotect": "هناڌاری زاْ بٱلٛگاْ",
        "newpage": "صفحه تازه",
-       "talkpagelinktext": "چٱک چناٛ",
+       "talkpagelinktext": "چٱک چنٱ",
        "specialpage": "صفحه مخصوص",
        "personaltools": "ٱڤزارٱل شٱسقی",
        "talk": "گٱپ",
        "categorypage": "دیدن صفحه طبقه بندی",
        "viewtalkpage": "دیدن بحث ها",
        "otherlanguages": "میٛن زڤونا دیٱ",
-       "redirectedfrom": "(تصحیح مجدداز$1)",
+       "redirectedfrom": "(ڤاگٱردۊنی سی $1)",
        "redirectpagesub": "صفحه تصحیح وهدایت مجدد",
        "redirectto": "ڤاگردۈنی سی:",
        "lastmodifiedat": "ای بٱلگٱ تازاٛییا ماٛن $1 و میٛن $2 آلشدکاری ڤابیڌاْ.",
        "editsection": "آلشدکاری کردن",
        "editold": "اصلاح",
        "viewsourceold": "دیدن منبع",
-       "editlink": "ڤیرایئشت",
+       "editlink": "آلشدکاری کردن",
        "viewsourcelink": "سئیل سرچشماْ کونین",
        "editsectionhint": "آلشدکاری بٱرجا: $1",
        "toc": "مینۊناْیٱل",
        "site-rss-feed": "خبرخو RSS سی $1",
        "site-atom-feed": "هٱڤال خۊنی Atom سی $1",
        "page-rss-feed": "خبرخو RSS سی «$1»",
-       "page-atom-feed": "هأڤال خۈن Atom سي $1",
+       "page-atom-feed": "هٱڤال خۊن Atom سی $1",
        "red-link-title": "$1 (چونو بلگاْیی نیڌس)",
        "sort-descending": "ڤدین یٱک کٱم آڤیڌن",
        "nstab-main": "بٱلگٱ",
        "nstab-media": "بلگأ ڤارسگأري",
        "nstab-special": "بٱلگاْ ڤیجٱ",
        "nstab-project": "صفحه پروژه",
-       "nstab-image": "فایل",
+       "nstab-image": "جانیا",
        "nstab-mediawiki": "پیغوم",
        "nstab-template": "قالب یا الگو",
        "nstab-help": "بألگإ هومیاری",
-       "nstab-category": "دسته",
+       "nstab-category": "دٱسدٱ",
        "mainpage-nstab": "سرتال",
        "nosuchaction": "چونوݩ عملؽ نؽڌآ",
        "nosuchactiontext": "عمل دزاْ آڤیڌاْ ڤاْ تیرنشون مؽنتوری بؽ اْتڤار هؽڌآ\nمومکن هؽڌآ تیرنشون مؽنتوری ناْ پٱلارنیڌ ڤامؽ کرڌاْ ڤۊهین یا دینا یٱ پاٛڤٱن بٱی ڌارؽ ناْ گریڌیناْ.\nهٱمچونوݩ مومکن هؽڌآ بٱی ڤ نٱرم ٱفزار ڤ کارگریداْ آڤیڌاْ در{{SITENAME}} ڤیڌاْ ڤۊهاْ",
        "title-invalid-talk-namespace": "اوڌڤان بٱلٛگاْ خاساْ ڤیڌا ڤاْ بٱلٛگاْ بٱئسؽ کاْ نؽڌآ اْرجا اْکوناْ",
        "title-invalid-characters": "اوڌڤان بٱلٛگاْ خاساْ آڤیڌاْ هؽلڤیڌاْ ناموجاز داراْ$1",
        "title-invalid-relative": "اوڌڤان دارای دزاٛئی هؽڌآ.اوڌڤانٱل کاْ دزاٛئی نسمی(چی /.یا/...) ناموجاز هؽڌن چیناکاْ ڤا موڌیگر مؽنتورٱل قاڤل دٱسرٱسی نؽڌن",
-       "viewsource": "مشاهده منبع",
+       "viewsource": "دیئن سرچشمٱ",
        "actionthrottled": "نها کار اؽسا گریداٛ آڤیڌ",
        "actionthrottledtext": "ڤ سی نهاگری زاْ ؤولٱ ڤیڌن چۊلکاری،اْجازاٛ نارین کاْ چونوݩ کارؽ ناْ ڤؽشڌر زاْ چٱن کرٱت ڤ یٱ رات کول ٱنجوم ڤڌین\nلوتفٱن دیناتٱر زاْ چٱن دٱیخاْ سٱرزنۊ پلرڌ کونین",
        "protectedpagetext": "ای بٱلٛگاْ سی نهاگری راْ آلشڌکاری یا جومجیل دهرؽ پلڌاری آڤیڌاْ",
        "resettokens-watchlist-token": "شناسانٱنڌاٛ خوراک ڤباٛی [[Special:Watchlist|آلشڌ بٱلٛگیٱلؽ کاْ دیناگری اْکونین]] (ٱتم/آراْس‌اْس)",
        "resettokens-done": "دوکرتشناسی شناسانٱنڌاٛیٱل",
        "resettokens-resetbutton": "دوکرتشناسی شناسانٱنڌاٛیٱل دزاْ آڤیڌاْ",
-       "bold_sample": "متن گپ نما",
-       "bold_tip": "متن گپ نما",
-       "italic_sample": "Ù\85تÙ\86 Ø´Ú©Ø³ØªÙ\87",
-       "italic_tip": "Ù\85تÙ\86 Ø´Ú©Ø³ØªÙ\87",
+       "bold_sample": "Ù\85تÙ\86 Ú¯Ù±Ù¾ Ù\86Ù\85ا",
+       "bold_tip": "Ù\85تÙ\86 Ú¯Ù±Ù¾ Ù\86Ù\85ا",
+       "italic_sample": "Ù\85تÙ\86 Ø§Û\8cتاÙ\84Û\8cÚ©",
+       "italic_tip": "Ù\85تÙ\86 Ø§Û\8cتاÙ\84Û\8cÚ©",
        "link_sample": "داسۊن هومپاٛیڤٱند",
        "link_tip": "هومپاٛیڤٱند داخلی",
-       "extlink_sample": "http://www.example.com Ø¹Ù\86Ù\88اÙ\86 Ù\84Û\8cÙ\86Ú©",
-       "extlink_tip": "(به خاطر بسپار http:// prefix)\nلینک خارجی",
-       "headline_sample": "سرخط متن",
-       "headline_tip": "2سرخط یکسان",
-       "nowiki_sample": "متن شکل نداده یافرمت نوابیده را ایچو بنین",
-       "nowiki_tip": "زه فرمت کردن یا شکل دادن ویکی چشم پوشی کن",
-       "image_tip": "فایل محاط وابید",
+       "extlink_sample": "http://www.example.com Ø¯Ø§Ø³Û\8aÙ\86 Ù\87Ù\88Ù\85پاÙ\9bÛ\8cÚ¤Ù±Ù\86د",
+       "extlink_tip": "(ڤٱن ڤا ڤیرت http:// prefix)\nهومپاٛیڤٱند  خارجی",
+       "headline_sample": "سرخٱت متن",
+       "headline_tip": "ریتراز 2 سرخٱت",
+       "nowiki_sample": "ز ایچو متن بی شیڤات خوتۊناْ ڤارڌ کونین",
+       "nowiki_tip": "ز شیڤات ڤیکی تی پۊشی کو.",
+       "image_tip": "جانیا چارقر گرهڌاْ",
        "media_tip": "جانیا هومپاٛیڤٱند",
-       "sig_tip": "اÙ\85ضاÛ\8c Ø§Û\8cسا Ù\88 Ø¨Ø±Ú\86سب Ø²Ù\85اÙ\86",
-       "hr_tip": "خط افقی (کم استفاده کنین)",
-       "summary": "خلاصه:",
+       "sig_tip": "اÙ\92Ù\85زا Ø§Û\8cسا Ú¤Ø§ Ú¯Ø§ØªØ¯Û\8cساÙ\92",
+       "hr_tip": "خٱت ٱوفوتی (کم ڤٱنین ڤا کار)",
+       "summary": "چکستٱ:",
        "subject": "داسۈن",
        "minoredit": "ای یه اصلاح ریزه-رز",
-       "watchthis": "پیگیری ای صفحه",
-       "savearticle": "صÙ\81Ø­Ù\87 Ø¶Ø¨Ø· Ø¨Ù\88Ù\87",
+       "watchthis": "پاٛگری ای بٱلگاْ",
+       "savearticle": "بٱÙ\84گاÙ\92 Ø§Ù\92Ù\85اÛ\8cاÙ\92 Ú¤Ø§Ø¨Û\8a",
        "savechanges": "کۊکرڌن آلشڌٱل",
        "publishpage": "تیژنیڌن بٱلٛگاْ",
        "publishchanges": "تیژنیڌن آلشڌٱل",
        "savearticle-start": "کۊنیڌن بٱلٛگاْ",
        "preview": "پیش نمایش",
-       "showpreview": "Ù¾Û\8cØ´â\80\8cÙ\86Ù\85اÛ\8cØ´",
-       "showdiff": "نشودادن تغییرات",
+       "showpreview": "Ù\86Ø´Û\8aÙ\86 Ø¯Ø§Ø¦Ù\86 Ù¾Û\8cØ´ Ø³Ø§Ù\9bÛ\8cÙ\84",
+       "showdiff": "نشۊن دائن آلشدا",
        "anoneditwarning": "<strong>زئنار:</strong> شوما هأنی نیوٙمایتە ڤامین. تیرنئشوٙن آی پی شوما سی هأر گاتی کئ آلئشتکاری بأکیت سی کول خألک دیاری می کە. أر <strong>[$1 روئیت ڤامین]</strong> یا <strong>[$2 یئ گئل حئساڤ کاریاری راس بأکیت]</strong>، ڤیرایئشتیا شوما ڤئ نوم کاریاری خوتوٙ دیاری می کە و سی شوما بیتأرە.",
        "summary-preview": "پیش نمایش - خلاصه:",
        "blockedtext": " \"'''دسترسی نام کاربری یا نشانی اینترنتی ایسا بسته وابیده.'''\nای کار توسط $1 انجام شده‌است.\nدلیلی که گده اینه: $2''\n* آغاز قطع دسترسی: $8\n* زمان اتمام ای قطع دسترسی: $6\n* کاربری که قطع دسترسی‌اش در نظر بیده: $7\nایساترین با $1 یا یکی از [[{{MediaWiki:Grouppage-sysop}}|مدیران]] تماس بگیرین و در ای باره صحبت کنین.\nتوجه کنین که ایسا نترین زه امکان «ارسال پست الکترونیکی به ای کاربر» استفاده کنین مگر این که نشانی پست الکترونیکی معتبری در [[Special:Preferences|اولویتهای کاربری]]خود ثبت کرده بوین.\nنشانی IP ایسا $3 و شماره قطع دسترسی ایسا $5 است. لطفاً ای شماره‌ها را در همه کاوشهاتون ذکر کنین.\nایسا ترین با $1 یا یکی دیه زه [[{{MediaWiki:Grouppage-sysop}}|مدیران]] تماس بگیرین، تا در باره ای قطع دسترسی صحبت کنین.\nدقت کنین که سی ارسال پست الکترونیکی در ویکی، وا پست الکترونیکی خود را زه طریق صفحه[[Special:Preferences|تنظیمات]] فعال کرده بوین، و نیز، وا امکان استفاده زه ای ویژگی سی ایساقطع نبوه.\nنشانی اینترنتی الان ایسا $3 است و شماره قطع دسترسی $5 است.\nلطفاً ای شماره را در هر درخواستی که در ای مورد مطرح اکنین ذکر کنین",
        "loginreqtitle": "ڤامإن إڤوڌن لازومإ",
-       "loginreqlink": "ڤامین اوڤیڌن",
+       "loginreqlink": "ڤامین ٱڤوڌن",
        "accmailtitle": "رازينإ گوڤأرتن فرشناڌإ ڤابيڌإ",
        "newarticle": "(تازه)",
        "newarticletext": "ايسا ز دين یأ هومپیڤأندي هڌين کإ نيڌس. سي رأڤأندياري بألگإ شورۈ کونين مإن اي جأڤإ دإڤۈني بنڤيسين(سي دونسدن بیشدر سإیل [$1]کونین).\nأر ايسا سي إشتڤاکاري ايچونين، دوگمإ رأهڌن ڤاپوشد نأ بپۈرنين.",
-       "noarticletext": " ايسإ اي بألگإ نإڤشدإیي نارإ، ايسا تإرين [[Special:Search/{{PAGENAME}}داسۈن اي بألگإ نإ مإن بألگإآ ديأري پی جۈري کونين]] یا [{{fullurl:{{FULLPAGENAME}}|action=edit}} اي بألگإ نأ ڤيرایشد کونين].",
+       "noarticletext": " ایساْ ای بٱلگاْ نڤشداْیی ناراْ، ایسا تاْرین [[Special:Search/{{PAGENAME}}داسۊن ای بٱلگاْ نٱ میٛن بٱلگاْیٱل دیٱری پاٛی جۊری کونین]] یا [{{fullurl:{{FULLPAGENAME}}|action=edit}} ای بٱلگاْ نٱ آلشدکاری کونين].",
        "noarticletext-nopermission": " ايسإ اي بألگإ نإڤشدإیي نارإ، ايسا تإرين [[Special:Search/{{PAGENAME}}داسۈن اي بألگإ نإ مإن بألگإآ ديأري پی جۈري کونين]] یا [{{fullurl:{{FULLPAGENAME}}|action=edit}} اي بألگإ نأ ڤيرایشد کونين].",
        "previewnote": "'''ای فقط یه پیش نمایشه;\nتغییراتی که ایسا دادین هنی ضبط نوابیده!'''",
        "editing": "درحال اصلاح $1",
        "templatesused": "{{PLURAL:$1|چوٙأ|چوٙأیل}} ب کار گرهڌأ ڤابيڌإ مإن اي بألگأ:",
        "templatesusedpreview": "قالڤٱل یا اولگۊیٱل ڤاْ کار رٱئڌاْ مؽن ای نهانماو",
        "template-protected": "(پٱر و پیم ڤابیڌٱ)",
-       "template-semiprotected": "(نیمه حمایت وابیده)",
+       "template-semiprotected": "(نسم نیماْ پٱر و پیم ڤابیڌاْ)",
        "hiddencategories": "اي بلگأ یکي ز أندوما {{PLURAL:$1|1 hidden category|$1 hidden categories}} إ:",
        "nocreatetext": "{{SITENAME}}قابلیت درست کردن صفحات تازه را محدود کرده‌. ترین برگردین و صفحه‌ موجود را اصلاح کنین یا اینکه  [[Special:UserLogin|به سیستم داخل بوین یا حساب کاربری درست کنین]].",
        "permissionserrors": "پٱلاْ:اْجازاْ ڤگرا",
        "previousrevision": "← ڤانیٱری دیندایی",
        "nextrevision": "نسخه بعدی →",
        "currentrevisionlink": "نسخه جاری",
-       "cur": "فعلی",
+       "cur": "ایسنی",
        "next": "نيایي",
-       "last": "قبلی",
+       "last": "دیندایی",
        "page_first": "اولین",
        "page_last": "آخری",
        "histlegend": "انتخاب متفاوت: علامت بنین رو رادیو جعبه ها زه آن نسخه ها سی مقایسه وامتیاز دادن ویا داخل تکمه های زیر سی مسابقه بوین  .<br />\n'شرح: (فعلی) = تفاوت با نسخه جاری\n(قبلی) = تفاوت با نسخه قبلی، جز = ویرایش جزئی',",
        "diff-multi-sameuser": "({{PLURAL:$1|یٱ دۊناٛ نوسقاٛ مؽنجخایی|$1 نوسقاٛیٱل مؽنجخایی}} ب دٱسد{{PLURAL:$2|کاریاری ديٱ|$2 کاريارا}} نشۊن دیاری نٱکرداْ)",
        "searchresults": "نتيجاْیٱل پاٛی جۊری",
        "searchresults-title": "نتيجاْیٱل پاٛی جۊری سی \"$1\"",
-       "prevn": "قبلی {{PLURAL:$1|$1}}",
-       "nextn": "بعدی {{PLURAL:$1|$1}}",
+       "prevn": "دیندایی {{PLURAL:$1|$1}}",
+       "nextn": "نیایی {{PLURAL:$1|$1}}",
        "nextn-title": "نيایي $1 {{PLURAL:$1|نتيجه|نتيجإآ}}",
        "shown-title": "نشۊن دائن $1 {{PLURAL:$1|نتیجاْ|نتیجاْیٱل}} سی هر بٱلگٱ",
-       "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
+       "viewprevnext": "دیئن ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "<strong>اي بلگإ نأ مإن \"[[:$1]]\" اي ڤيکي راسد کو!</strong> {{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}",
-       "searchprofile-articles": "بÙ\84Ú¯Ù\87 Ø¢ Ù\85Û\8cÙ\86Ù\88Ù\86Ù\87 دار",
-       "searchprofile-images": "ڤارسگرا خلکمند",
-       "searchprofile-everything": "Ù\87Ù\85Ù\87 چی",
-       "searchprofile-advanced": "Ù¾Û\8cشکردÙ\87",
-       "searchprofile-articles-tooltip": "بگرد مئن $1",
-       "searchprofile-images-tooltip": "جانیاانه پی جوری کو",
-       "searchprofile-everything-tooltip": "Ù\87Ù\85Ø¥ Ù\85Ø¥Ù\86Û\88Ù\86Ø¥ Ø¢ Ù\86Ø£ Ù¾Û\8c Ø¬Û\88رÙ\8a Ú©Ù\88(د Ú¤Ø± Ú¯Ø±Ù\87Ú\8cØ¥ Ø¨Ø£Ù\84گإÛ\8cÙ\84 Ú\86Ø£Ú© Ú\86Ù\86Ø£)",
-       "searchprofile-advanced-tooltip": "Ù\86Ù\88Ù\85 Ø¬Ø§Û\8cÙ\84 Ù\86Ù\88Ù\85 Ø¯Ù\8aار Ù\86Ø£ Ø¨Ú¯رد.",
+       "searchprofile-articles": "بٱÙ\84گاÙ\92Û\8cÙ±Ù\84 Ù\85Û\8cÙ\86Û\8aÙ\86اÙ\92 دار",
+       "searchprofile-images": "مۊلتی مدیا",
+       "searchprofile-everything": "Ù\87Ù±Ù\85اÙ\92 چی",
+       "searchprofile-advanced": "Ù¾Û\8cشکردٱ",
+       "searchprofile-articles-tooltip": "بگٱرد میٛن $1",
+       "searchprofile-images-tooltip": "جانیایٱل ناْ پاٛی جۊری کو",
+       "searchprofile-everything-tooltip": "Ù\87Ù±Ù\85اÙ\92 Ù\85Û\8cÙ\86Û\8aÙ\86اÙ\92Û\8cÙ±Ù\84 Ù\86Ù± Ù¾Ø§Ù\9bÛ\8c Ø¬Û\8aرÛ\8c Ú©Ù\88(ز Ú¤Ù±Ø±Ú¯Ø±Ù\87Ú\8cاÙ\92 Ø¨Ù±Ù\84گاÙ\92Û\8cÙ±Ù\84 Ú\86Ù±Ú© Ú\86Ù\86Ù±)",
+       "searchprofile-advanced-tooltip": "Ù\86Ù\88Ù\85 Ø¬Ø§Û\8cÙ±Ù\84 Ù\86Ù\88Ù\85 Ø¯Û\8cار Ù\86Ù± Ø¨Ú¯Ù±رد.",
        "search-result-size": "$1 ({{PLURAL:$2|1 ڤاجاْیٱل|$2 ڤاجاْیٱل}})",
        "search-result-category-size": "\n{{PLURAL:$1|یٱهومڤٱن|$1 هومڤٱن}} ({{PLURAL:$2|یٱزؽر بنکۊ|$2 زؽر بنکۊ}}، {{PLURAL:$3|یٱ پٱرڤٱناْ|$3 پٱرڤٱناْ}})",
-       "search-redirect": "(ڤاگردۈني ز $1)",
-       "search-section": "(بÙ\87رجا $1)",
+       "search-redirect": "(ڤاگٱردۊنی ز $1)",
+       "search-section": "(بٱرجا $1)",
        "search-suggest": "منزۈرت یو بي:$1",
        "search-interwiki-more": "(بيشدر)",
        "searchall": "همه",
-       "search-showingresults": "{{PLURAL:$4|نتیجه یل<strong>$1</strong> د <strong>$3</strong>|نتیجه یل<strong>$1 - $2</strong د <strong>$3</strong>}}",
-       "search-nonefound": "هیژ نتیجه یی وا پی جست تو یکی نئ.",
+       "search-showingresults": "{{PLURAL:$4|نتیجاْیٱل<strong>$1</strong> ز <strong>$3</strong>|نتیجاْ یٱل<strong>$1 - $2</strong ز <strong>$3</strong>}}",
+       "search-nonefound": "هیژ نتیجاْیی ڤا پاٛی جوست تۊن یکی نیڌ.",
        "powersearch-toggleall": "همأ",
        "powersearch-togglenone": "هيش کوم",
        "preferences": "اولویتها",
        "group-sysop": "سٱردیڤۊنکارۊن",
        "grouppage-bot": "{{ns:project}}:بوتا",
        "grouppage-sysop": "{{ns:project}}:مدیران",
-       "right-writeapi": "سÙ\8a Ù\86ڤشدÙ\86 Ø§Ù\8a Ù¾ Ø¢Û\8c Ú¤Ø£نين ڤاکار",
-       "newuserlogpage": "راسد ڤابیه وا کاریار",
+       "right-writeapi": "سÙ\8a Ù\86ڤشدÙ\86 Ø§Ù\92Û\8c Ù¾Û\8c Ø¢Û\8c Ú¤Ù±نين ڤاکار",
+       "newuserlogpage": "راسد ڤابیاْ ڤا کاریار",
        "rightslog": "نمایه حقوق کاربر",
        "action-edit": "ای بلگٱ نٱ ۋیرایشد کو",
        "action-createaccount": "ڤاکل ای هساْڤ مؽنتوری",
        "nchanges": "$1 {{PLURAL:$1|تغییر|تغییرات}}",
        "enhancedrc-history": "ڤیرگار",
        "recentchanges": "آلشدکاریا ایسنی",
-       "recentchanges-legend": "گزينإ آ آلشدا ايسإني",
+       "recentchanges-legend": "گوزیناْیٱل آلشدکاریٱل ایسنی",
        "recentchanges-summary": "دو بیشتر آلشدا تازباو نه د ویکی نه د ای بلگه پیگری کو.",
        "recentchanges-feed-description": "ردیابی آخرین تغییرات  ویکی در ای خورد",
-       "recentchanges-label-newpage": "ای ويرايشت يه بلگه تازه راس كرده",
-       "recentchanges-label-minor": "Û\8cÙ\88 Û\8cÙ\87 Ù\88Ù\8aراÙ\8aشت Ú©Ù\88Ú\86Ù\8aرÙ\87",
-       "recentchanges-label-bot": "اي ڤيرایشد نأ یأ بوت أنجوم داڌإ",
-       "recentchanges-label-unpatrolled": "ای ويرايشت هنی تيه واداشت نوابيه",
-       "recentchanges-label-plusminus": "أندازإ بألگأ ب شومار اي بایتا آلشد کردإ.",
-       "recentchanges-legend-heading": "<strong>Ù\85Û\8cراث:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Ù\87Ù±Ú\86Ù\88Ù\86Ù\88Ý© Ú¤Ø§Ù\92[[Special:NewPages|Ù\81اÙ\9bئرست بٱلٛگیٱل نۊ]] ساٛل ؤوٱنین)",
+       "recentchanges-label-newpage": "ای آلشدکای یٱ بٱلگاْ تازاْ راسد کرداْ",
+       "recentchanges-label-minor": "Û\8cÙ\88 Û\8cÙ± Ú¤Û\8cراÛ\8cشد Ú©Û\8aÚ\86Û\8cراÙ\92",
+       "recentchanges-label-bot": "ای ڤیرایشتاْ نٱ یٱ بوت ٱنجوم دائاْ",
+       "recentchanges-label-unpatrolled": "ای آلشدکاری هٱنی تیاْڤاڌاشت نٱڤابیڌاْ",
+       "recentchanges-label-plusminus": "ٱندازاْ بٱلگاْ ب شومار ای بایتٱل آلشد کرداْ.",
+       "recentchanges-legend-heading": "<strong>Ù\85Û\8cراس:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Ù\87Ù±Ú\86Ù\88Ù\86Ù\88Ý© Ú¤Ø§Ù\92[[Special:NewPages|Ù\86Ù\88Ù\85Ú¯Ù± بٱلٛگیٱل نۊ]] ساٛل ؤوٱنین)",
        "rcnotefrom": "ۋازیر {{PLURAL:$5|ۋیرایشد|ۋیرایشدا}}ز ۋیرگار strong>$3, $4</strong> تا ۋیرگار <strong>$1</strong>  دیاری اٛکونن .",
-       "rclistfrom": "نشودادن تغییرات تازه با شروع زه $3 $2",
-       "rcshowhideminor": "اصÙ\84احات Ú©Ù\88Ú\86Û\8cÚ© $1",
+       "rclistfrom": "دیار کردن آلشدکاریٱل ز $3 $2",
+       "rcshowhideminor": "Ø¢Ù\84شدکارÛ\8c Ú©Û\8aÚ\86Û\8cر $1",
        "rcshowhideminor-show": "نشون دائن",
        "rcshowhideminor-hide": "قام کردن",
-       "rcshowhidebots": "$1 Ø±Ø¨Ø§Øªâ\80\8cÙ\87ا Û\8cا Ø¨Ù\88تÙ\87ا",
-       "rcshowhidebots-show": "نشون دائن",
+       "rcshowhidebots": "$1 Ø¨Ù\88تا",
+       "rcshowhidebots-show": "نشۊن دائن",
        "rcshowhidebots-hide": "قام کردن",
-       "rcshowhideliu": "$1 کاریارا ثوت نام کرده",
+       "rcshowhideliu": "$1 کاریارٱل سٱڤت نام کرداْ",
        "rcshowhideliu-show": "دیار کردن",
-       "rcshowhideliu-hide": "Ù\82اÙ\85 Ú©Ø¦Ø±Ø¯Ø¦ن",
-       "rcshowhideanons": "$1 کاربران داخل نوابیده",
+       "rcshowhideliu-hide": "Ù\82اÙ\85 Ú©Ø±Ø¯ن",
+       "rcshowhideanons": "$1 کاریارٱل ڤامیٛن نٱڤوڌاْ",
        "rcshowhideanons-show": "نشون دائن",
-       "rcshowhideanons-hide": "Ù\82اÙ\85 Ú©Ø¦Ø±Ø¯Ø¦ن",
+       "rcshowhideanons-hide": "Ù\82اÙ\85 Ú©Ø±Ø¯ن",
        "rcshowhidepatr": "$1 اصلاحات پاسداری شده",
-       "rcshowhidemine": "$1 Ø§ØµÙ\84احات مو",
+       "rcshowhidemine": "$1 Ø¢Ù\84شدکارÛ\8cا مو",
        "rcshowhidemine-show": "نشون دائن",
-       "rcshowhidemine-hide": "Ù\82اÙ\85 Ú©Ø¦Ø±Ø¯Ø¦ن",
-       "rclinks": "نماونیڌن دینائی $1 آلشڌ مؽن $2 رۊز ٱخیر",
+       "rcshowhidemine-hide": "Ù\82اÙ\85 Ú©Ø±Ø¯ن",
+       "rclinks": "دیاری کردن دینائی $1 آلشڌ مؽن $2 رۊز دیندایی",
        "diff": "فٱرخ",
        "hist": "گوزارشت",
        "hide": "قایم شدن",
        "show": "نشودادن",
-       "minoreditletter": "رز",
-       "newpageletter": "تا",
-       "boteditletter": "ر",
+       "minoreditletter": "م",
+       "newpageletter": "ن",
+       "boteditletter": "ب",
        "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتا}} نیا آلشدکاری",
-       "recentchangeslinked": "تغÛ\8cÛ\8cرات Ù\85رتبط",
+       "recentchangeslinked": "Ø¢Ù\84شدکارÛ\8cÙ±Ù\84 ØªØ§Ù\92 Û\8cÙ±Ú©",
        "recentchangeslinked-feed": "تغییرات مرتبط",
        "recentchangeslinked-toolbox": "آلشدکاریٱل تاْ یٱک",
-       "recentchangeslinked-title": "تغÛ\8cÛ\8cرÙ\87اÛ\8c Ù\85رتبط Ø¨Ø§ $1",
+       "recentchangeslinked-title": "Ø¢Ù\84شدکارÛ\8cÙ±Ù\84 ØªØ§Ù\9b Û\8cÚ©Û\8c Ø³Û\8c $1",
        "recentchangeslinked-summary": "نوم یٱ بٱلٛگاْ ناْ ڤامؽ کونین تا آلشڌکاری بٱلٛگیٱل کاْ ڤاْ هومؽنڌارکرڌیناْ یا زاْ هو مؽنڌاری گریڌین ناْ ڤڤینین(سی نیٱشڌن هوم ڤٱنوناْ یٱ بنکۊ چونوݩ چی ائی ناْ ڤزٱنین:نوم بونکۊ). \nآلشڌکاریٱل بلٛگیٱلؽ کاْ مؽن[[Special:Watchlist|فاٛئرست دیناگریٱل اؽسا]] هؽڌن <strong>ؤٱرڌار</strong> نمای اْڤۊهاْ",
-       "recentchangeslinked-page": "نوم بألگە:",
-       "recentchangeslinked-to": "Ø¢Ù\84شتÛ\8cاÛ\8cÛ\8c Ú©Ù\87 Ø¯ Ø¨Ù\84Ú¯Ù\87 Û\8cا Ù\87Ù\88Ù\85 Ù¾Û\8cÙ\88Ù\86د Ø¨Û\8cÙ\86Ù\87 Ù\88Ù\87 Ø¬Ø§ Ø¨Ù\84Ú¯Ù\87 Ø¯Ø¦Û\8cÙ\87 Ø¨Û\8cÙ\87 Ù\86Ø´Ù\88 Ø¨Û\8cÙ\87",
+       "recentchangeslinked-page": "نوم بٱلگاْ:",
+       "recentchangeslinked-to": "Ø¢Ù\84شدکارÛ\8cÙ±Ù\84Û\8c Ú©Ø§Ù\92 Ù\85Û\8cÙ\9bÙ\86 Ø¨Ù±Ù\84گاÙ\92Û\8cÙ±Ù\84 Ù\87Ù\88Ù\85پاÙ\9bÛ\8cÚ¤Ù±Ù\86د Ø¨Û\8cÙ\86اÙ\92 Ø¨ Ø¬Ø§ Ø¨Ù±Ù\84گاÙ\92 Ø¯Ø§Ú\8cاÙ\92 Ú¤Ø§Ø¨Û\8cÚ\8cاÙ\92 Ø¯Û\8cارÛ\8cسÛ\8aÙ\86 Ú©Ù\88",
        "upload": "سوڤار کردن جانیا",
        "uploadbtn": "آپلود فایل",
        "uploadlogpage": "نمایه آپلود",
-       "filedesc": "چكستأ",
+       "filedesc": "چكستٱ",
        "license": "ماٛن حال و بال لیسانس دار ۋابیاٛن",
        "license-header": "ب حال وبال ليسانس دار ڤابيڌن",
        "imgfile": "جانيا",
        "listfiles": "لیست فایل",
-       "file-anchor-link": "فایل",
+       "file-anchor-link": "جانیا",
        "filehist": "ڤیرگار جانیا",
-       "filehist-help": "رو تاریخ‌ها کلیک کنید تا نسخه مرتبط را ببینین.",
+       "filehist-help": "ری ڤیرگار بپۊرنین تا نوسقاْیی کاْ خاین باْنیٱرین",
        "filehist-revert": "لرنیئن",
-       "filehist-current": "جارÛ\8c",
-       "filehist-datetime": "تاریخ/زمان",
-       "filehist-thumb": "عسگ کۈچير وابيه",
+       "filehist-current": "تازاÙ\92 Ø¨Ø§Ú¤",
+       "filehist-datetime": "گات/مجال",
+       "filehist-thumb": "ٱسگ بٱن کاْلکی",
        "filehist-thumbtext": "كۊچیر کردن سی نوسقاْ $1",
        "filehist-nothumb": "نڤیڌن بٱن کلکی",
-       "filehist-user": "کاربر",
-       "filehist-dimensions": "ابعاد",
+       "filehist-user": "کاریار",
+       "filehist-dimensions": "ڤٱرگٱیٱل",
        "filehist-filesize": "اندازه فایل",
-       "filehist-comment": "توضیح",
+       "filehist-comment": "ڤیر و باڤٱر",
        "imagelinks": "ڤا کار ڤٱندن جانیا",
-       "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکهای صفحه|$1 لینک صفحات}} به ای فایل:",
+       "linkstoimage": "پیشٱر گوهڌاْ ڤابیڌاْ {{PLURAL:$1|ڤا کار ڤٱندن بٱلگاْیٱل|$1 ڤا کار ڤٱندن بٱگاْیٱل }} سی ای جانیا:",
        "nolinkstoimage": "ای پٱرڤٱناْ مؽن هیچ بٱلٛیاْ نؽڌا",
        "sharedupload": "ای فایل یک آپلود اشتراکی هده و ممکنه زه طریق  پروژه‌های دیگه  هم قابل دسترسی بوه",
-       "sharedupload-desc-here": "جانيایي کإ مإن $1 گاشا مإن پوروجأیل هإني ب کار گرهڌإ وابيڌإ.\nتۉزي سي [$2 file description page] مإن دإڤۈن دياري کردإ",
+       "sharedupload-desc-here": "جانیایی کاْ میٛن $1 گاشا میٛن پوروجٱیٱل هٱنی ٱم ب کار گرهڌاْ ڤابیڌاْ بۊ.\nتۉزی سی [$2 file description page] میٛن دڤۊن دیاراْ",
        "uploadnewversion-linktext": "آپلود کردن یه نسخه تازه زه ای فایل",
-       "upload-disallowed-here": "اÙ\8aسا Ù\86ترÙ\8aÙ\86 Ø§Ù\8a Ø¬Ø§Ù\86Ù\8aا Ù\86Ø£ Ø² Ù\86Û\89 Ø³Ù\88ڤار Ú©Ù\88Ù\86Ù\8aن",
+       "upload-disallowed-here": "اÙ\8aسا Ù\86اÙ\92ترÛ\8cÙ\86 Ø§Û\8c Ø¬Ø§Ù\86Û\8cا Ù\86Ù± Ø² Ù\86Û\89 Ø³Ù\88ڤار Ú©Ù\88Ù\86Û\8cن",
        "mimesearch": "MIME جستجو رو پایه",
        "listredirects": "لیست تغییر مسیرها",
        "unusedtemplates": "قالبها یا الگوهای استفاده نوابیده",
        "booksources-search": "پی جۈري",
        "specialloguserlabel": "مؽنتور:",
        "speciallogtitlelabel": "اوڌڤان:",
-       "log": "Ù\86Ù\85اÛ\8cÙ\87 Ù\87ا",
+       "log": "پاÙ\92رستÙ\86Ù\88Ù\85اÙ\92Û\8cÙ±Ù\84",
        "all-logs-page": "گشڌنمائیٱل",
        "allpages": "همه صفحات",
        "nextpage": "صفحه بعدی ($1)",
        "prevpage": "صفحه قبلی($1)",
        "allpagesfrom": "نمایش دادن صفحات با شروع زه:",
        "allarticles": "همه صفحات",
-       "allpagessubmit": "برÙ\88",
+       "allpagessubmit": "رÛ\89",
        "allpagesprefix": "نشو دادن صفحات همراه با پیشوند:",
        "allpages-hide-redirects": "بؽ دیارنیڌن آلشڌتورٱل",
        "categories": "دسته آ",
        "removedwatchtext": "آن صفحه\"[[:$1]]\" جابجا وابیده زه[[Special:لیست پیگیری|لیست پیگیری ایسا]].",
        "watch": "پی‌گیری",
        "watchthispage": "پیگیری ای صفحه",
-       "unwatch": "پيگري نبيڎه",
+       "unwatch": "پاٛیگری نٱڤابیڌاْ",
        "watchlist-details": "{{PLURAL:$1|$1 بٱلٛگاْ|$1 بٱلٛگیٱل}} مؽن لیست دیناگری ایسا,هؽڌا",
        "wlheader-showupdated": "بٱلٛگیٱلؽ کاْ دیناتٱر زاْ آخرین ساٛل اؽسا آلشڌ آڤیڌ ناْ<strong>پورٱنڳ</strong> نماونیڌاْ آڤیڌناْ",
        "wlnote": "ڤاْ لٱم {{PLURAL:$1|آلشڌؽ|<strong>$1</strong> آلشڌؽ}} کاْ ڤاْ {{PLURAL:$2|سات|<strong>$2</strong> سات}} رٱئڌاْ انجوم آڤؽڌ مۉجۊڌ هؽڌا،ؤرگار دوکرٱت ڤینی دینائی: $3، $4",
        "deletecomment": "دلیل:",
        "deleteotherreason": "دیه/دلیل اضافی:",
        "deletereasonotherlist": "دلیل دیه",
-       "rollbacklink": "عقب گرد",
+       "rollbacklink": "ڤورگٱشتن",
        "rollbacklinkcount": "چڤاسإ کردن $1 {{PLURAL:$1|ویرایشت|ویرایشتیا}}",
        "protectlogpage": "نمایه حفاظت وحمایت",
        "protectedarticle": "پٱر و پیم ڤابیڌاٛ \"[[$1]]\"",
        "restriction-edit": "ڤيرایشت کردن",
        "restriction-move": "جا ڤا جا کردن",
        "undeletebtn": "بازیافت",
-       "namespace": "Ù\81ضاÛ\8c Ù\86اÙ\85:",
-       "invert": "انتخاب برعکس بوه",
-       "tooltip-invert": "ز ري اي جأڤأ بپۈرنين و آلشدایي نأ کإ مإنجقا نوم ڤأرگأ إنتخاڤ ڤابيڌن أنجوم داڌإ ڤابيڌنإ قام کونين.",
-       "namespace_association": "Ù\86Ù\88Ù\85 Ø¬Ø§Û\8cÙ\84 Û\8cأکاگرÙ\87Ú\8cØ£",
-       "tooltip-namespace_association": "اي جأڤإ نأ ڤارسي کونين اي جأڤأ د ڤأرگرهڌإ چأک چنإ آ داسۈن نوم ڤأرگأ شريکي و نوم ڤأرگأ گولإڤورچينإ.",
+       "namespace": "Ù\86Ù\88Ù\85 Ø¬Ø§:",
+       "invert": "گولڤورچین کردن بٱرٱسگ بۊ",
+       "tooltip-invert": "ز ری ای جٱڤاْ بپۊرنین و آلشدٱلی ناْ کاْ ماٛنجقا نوم ڤٱرگٱ گولاْڤورچین ڤابیڌن و ٱنجوم داڌاْ ڤابیڌناْ قام کونین.",
+       "namespace_association": "Ù\86Ù\88Ù\85 Ø¬Ø§Û\8cÙ±Ù\84 Û\8cٱکاگرÙ\87Ú\8cاÙ\92",
+       "tooltip-namespace_association": "ای جٱڤاْ نٱ ڤارسی کونین نأ ڤارسي کونين، ای جٱڤاْ  ز ڤٱرگرهڌاْ چٱک چناْ یٱل داسۊن نوم ڤٱرگٱ شریکی و نوم ڤٱرگٱ گولاْڤورچیناْ.",
        "blanknamespace": "(ٱسلی)",
-       "contributions": "{{GENDER:$1|کاریار}} هومیاریا",
+       "contributions": "{{GENDER:$1|کاریار}} هومیاریٱل",
        "contributions-title": "هومیاری كاریارآ سی $1",
        "mycontris": "هومياریا",
        "anoncontribs": "هومياریا",
        "ipboptions": "۲ ساعت:2 hours,۱ روز:1 day,۳ روز:3 days,۱ هفته:1 week,۲ هفته:2 weeks,۱ ماه:1 month,۳ ماه:3 months,۶ ماه:6 months,۱ سال:1 year,بی‌نهایت:infinite",
        "ipblocklist": "آدرسهای  آی پی وکاربران بسته وابیدند",
        "infiniteblock": "بؽ تٱ",
-       "blocklink": "بسته بوه !",
+       "blocklink": "نیاگری ڤابۊ !",
        "unblocklink": "باز بوه",
        "contribslink": "هٱیاری",
        "blocklogpage": "نمایه _ بسته‌وابیده‌ها",
        "tooltip-pt-createaccount": "ايسا پوشت گٱرم ڤابیڌیناْ کاْ یٱ هساڤ راسد کونین و بیائین ڤامین. ڤاْلی چونو کاری اٛژباری نی.",
        "tooltip-ca-talk": "چٱک چناْ سی مینۊناْ بٱلگٱ",
        "tooltip-ca-edit": "ای بٱلگاْ نٱ آلشدکاری کو",
-       "tooltip-ca-addsection": "Ø´Ù\88رÛ\88 Ú©Ø±Ø¯Ù\86 Û\8cÙ\87 Ø¨Ù\87رجا Ø¯Û\8cÙ\87",
-       "tooltip-ca-viewsource": "اÛ\8c ØµÙ\81Ø­Ù\87  ØªØ­Øª Ø­Ù\85اÛ\8cتÙ\87 Ø§Û\8cساترÛ\8cÙ\86 Ù\85Ù\86بعسÙ\87 Ø¨Ù\88Û\8cنین",
+       "tooltip-ca-addsection": "Ø´Ù\88رÛ\8a Ú©Ø±Ø¯Ù\86 Û\8cÙ± Ø¨Ù±Ø±Ø¬Ø§ Ø¯Û\8cÙ±",
+       "tooltip-ca-viewsource": "اÛ\8c Ø¨Ù±Ù\84گاÙ\92 Ù¾Ù±Ø± Ù\88 Ù¾Û\8cÙ\85 Ú¤Ø§Ø¨Û\8cÚ\8cاÙ\92.\nاÛ\8cسا ØªØ§Ù\92رÛ\8cÙ\86 Ø³Ø±Ú\86Ø´Ù\85اÙ\92ساÙ\92 Ø¨Ú¤نین",
        "tooltip-ca-history": "دڤوارتاْ دیئن ای بٱلگٱ",
        "tooltip-ca-protect": "حفاظت وحمایت زه ای صفحه",
        "tooltip-ca-delete": "حذف ای صفحه",
        "tooltip-t-whatlinkshere": "یو نومگٱ تٱموم بٱلگاْیٱلی ڤیکی پڌیائن کاْ ایچو هومپاٛیڤٱند دارن",
        "tooltip-t-recentchangeslinked": "آلشدکاریٱل تازاْباڤ میٛن بٱلگاْیٱلی کاْ هومپاٛیڤٱند ڤابیڌناْ ب ای بٱلگٱ",
        "tooltip-feed-rss": "تغذیه آراس اس برای ای صفحه",
-       "tooltip-feed-atom": "تغذیه کوچیک ترین جزء  ای صفحه",
+       "tooltip-feed-atom": "هٱڤال خۊن ٱتومی سی ای بٱلگاْ",
        "tooltip-t-contributions": "ديإن نومگأآیي کإ {{GENDER:$1|اي کاریار}} هومياريسۈن کردإ",
        "tooltip-t-emailuser": "فرشناڌن ب ٱنجوماناماْ {{GENDER:$1|ای کاریار}}",
        "tooltip-t-upload": "سوڤار کردن جانیایٱل",
        "tooltip-ca-nstab-media": "دیدن صفحه مدیا",
        "tooltip-ca-nstab-special": "ای بٱلگاْ یٱ بٱلگاْ ڤیجاْ، و نیبۊ آلشدکاریس کونین",
        "tooltip-ca-nstab-project": "دیدن صفحه پروژه",
-       "tooltip-ca-nstab-image": "دÛ\8cدÙ\86 ØµÙ\81Ø­Ù\87 Ù\81اÛ\8cÙ\84",
+       "tooltip-ca-nstab-image": "دÛ\8cئÙ\86 Ø¨Ù±Ù\84گاÙ\92 Ø¬Ø§Ù\86Û\8cا",
        "tooltip-ca-nstab-mediawiki": "دیدن پیام سیستم",
        "tooltip-ca-nstab-template": "دیدن قالب قابل تغییر",
        "tooltip-ca-nstab-help": "دیدن صفحه کمک",
-       "tooltip-ca-nstab-category": "دÛ\8cدÙ\86 ØµÙ\81Ø­Ù\87 Ø·Ø¨Ù\82Ù\87 Ø¨ندی",
+       "tooltip-ca-nstab-category": "دÛ\8cئÙ\86 Ø¨Ù±Ù\84گاÙ\92 Ø¯Ù±Ø³Ø¯Ø§Ù\92 Ø¨Ù±ندی",
        "tooltip-minoredit": "علامت نهادن به این به عنوان اصلاح حداقل یاکم",
-       "tooltip-save": "ضبط Ú©Ø±Ø¯Ù\86 ØªØºÛ\8cÛ\8cرات",
-       "tooltip-preview": " زه قبل دیدن تغییرات قبل از ضبط کردن سی مطمئن وابیدن لطفا استفاده کنید قبل از ضبط کردن",
-       "tooltip-diff": "دÛ\8cدÙ\86 ØªØºÛ\8cÛ\8cراتÛ\8c Ú©Ù\87 Ø§Û\8cسا Ù\85Ù\86 Ø§Û\8c Ù\85تÙ\86 Ø§Ù\86جاÙ\85 Ø¯Ø§Ø¯Û\8cÙ\86",
+       "tooltip-save": "اÙ\92Ù\85اÛ\8cاÙ\92 Ú©Ø±Ø¯Ù\86 Ø¢Ù\84شدکارÛ\8cتÛ\8aÙ\86",
+       "tooltip-preview": "پیش سئیل آلشدکاریٱلتۊن، لوتف کونین یۊنونٱ دیندا اْمایاْ کردن ڤٱنین ڤا کار.",
+       "tooltip-diff": "دÛ\8cئÙ\86 Ø¢Ù\84شدکارÛ\8cÙ±Ù\84Û\8c Ú©Ø§Ù\92 Ø§Û\8cسا Ù\85Û\8cÙ\9bÙ\86 Ø§Û\8c Ù\85تÙ\86 Ø±Ø§Ø³Øª Ú©Ø±Ø¯Û\8cÙ\86اÙ\92.",
        "tooltip-compareselectedversions": "دیدن تفاوتهای بین دونسخه انتخاب وابیده زه ای صفحه",
        "tooltip-watch": "اضاف کردن ای صفحه به فهرست مشاهداتتان",
        "tooltip-recreate": "دوباره درست کردن صفحه ای که زه رو کینه وغرض پاک وابیده",
        "tooltip-upload": "شروع آپلود",
-       "tooltip-rollback": "\"اعاده\" برگرداندن به وضع اولیه سی ای صفحه که بخاطر مشارکت  آخر اصلاح وابیده بایک کلیک",
+       "tooltip-rollback": "\"ڤورگٱنیئن\" لرنیڌن سی هال و بال ٱڤٱل ای بٱلگٱ سی یو کاْ هومیاری نیایی سی بیتٱر کردن بۊ ٱلڤٱت ڤا یٱ کرٱت پۊرنیڌن.",
        "tooltip-undo": "انجوم نگرتن ای ویرایشت ورگن و همه فرمیا ویرایشت تانه که حالت پیش سیل واکو.یه اجازه میئه سی اضاف کردن یه دلیل د چکسته.",
-       "tooltip-summary": "یأ چکسدأ کۈچير ڤارڌ کونين",
-       "simpleantispam-label": "Anti-spam check.\nپور<strong>نکنين</strong> ايچو نأ!",
+       "tooltip-summary": "یٱ چکستاْ کۊچیر ناْ بیارین ڤامیٛن",
+       "simpleantispam-label": "Anti-spam check.\nپور<strong>نکنين</strong> ایچو ناْ!",
        "pageinfo-title": "ڌونائی زاْ «$1»",
        "pageinfo-header-basic": "ڌونائیٱل بٱلٛگاْ",
        "pageinfo-header-edits": "ڤیرایشت ڤیرگار",
        "patrol-log-page": "سیاهاْ لاٛر",
        "previousdiff": "← اصلاح قدیمی",
        "nextdiff": "تفاوت بعدی→",
-       "file-info-size": "$1 × $2 پیکسل, اندازه فایل: $3, MIME نوع: $4",
+       "file-info-size": "$1 × $2 پیکسل, ٱندازاْ جانیا: $3, MIME جۊر: $4",
        "file-info-size-pages": "<span style=\"direction:ltr\">$1 × $2</span> نوخڌاْ، مٱشلٱقی پٱرڤٱناْ: $3، نوع MIME پٱرڤٱناْ: $4، $5 بٱلٛگاْ",
        "file-nohires": "قابلیت تفکیک بالاتری در دسترس نه.",
        "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازه فایل: $3",
-       "show-big-image": "جانیا اصلی",
-       "show-big-image-preview": "أندازإ اي پیش سیل:$1.",
-       "show-big-image-other": "هنی{{PLURAL:$2|گپ نما کردن|گپ نما کردنیا}}: $1.",
+       "show-big-image": "جانیا ٱسلی",
+       "show-big-image-preview": "ٱندازاْ ای پیش سئیل:$1.",
+       "show-big-image-other": "هاْنی{{PLURAL:$2|گٱپ نما کردن|گٱپ نما کردنیٱل}}: $1.",
        "show-big-image-size": "$1 × $2 پیکسل",
        "newimages": "گالری فایلهای تازه",
        "bad_image_list": "اطلاعات را وا به ای شکل وارد کنین:\n\nفقط سطرهایی که با * آغاز ابون در نظر گریده ابون. اولین لینک در هر سطر، باید لینکی به یک تصویر بد باشد.\nلینکهای بعدی در همان سطر، به عنوان موارد استثنا در نظر گریده ابون",
-       "metadata": "Ù\81رادادÙ\87",
-       "metadata-help": " ای فایل دارای اطلاعات اضافه‌ای است که احتمالاً با دوربین دیجیتالی‌ یا پویشگری که سی ایجاد یا دیجیتالی‌کردن آن به کار رهده اضاف وابیده . ایر فایل زه وضعیت اولیه اس تغییر داده وابیده بوه ممکنه همه توضیحات موجود اطلاعات عکس را منعکس نکنه",
+       "metadata": "Ù\85تاداÙ\9bÛ\8cتا",
+       "metadata-help": "ای جانیا ز ڤٱرگرهڌاْ دۊنسمٱندیٱل اْزافیاْ کاْ هونو گاشا(شایڌ) ڤا دیربین دیجیتالی یا اْسکٱنر سی ڤا کار ڤٱندن یا راست کردنسۊن یا دیجیتالی کردنسۊن اْزاف ڤابیناْ. ٱر جانیا ز هال و بال ٱڤلی خو آلشد ڤابیڌاْ بۊ شایڌ تٱموم تۉزیات دۊنسمٱندیٱل ٱسگ نٱ دیاری نٱکوناْ.",
        "metadata-expand": "نشودادن جزئیات تفصیلی",
        "metadata-collapse": "قایم کردن جزئیات تفصیلی",
        "metadata-fields": "رشناْیٱل گٱپ دۊنسمٱندیٱلی کاْ میٛن ای پاٛیغوم نومگٱ کاری ڤابیڌاْ ناْ ز ڤٱر گرهڌاْ بٱلگاْ ٱسگی کاْ گات ڤٱختی کاْ جٱدڤٱل گٱپ دۊنسمٱندیٱل ڤا اْبۊن دیاری کونن.\n*راست کو\n*مودل\n*مجال گات ٱسل\n*گات آشگار\n*اْف اْن شومارٱ\n*ایزو نرخ میٛن سورٱت\n*فوکالنس\n*هونٱرمٱند\n*کوپی رایت\n*هال و بال جی پی اْس \n*جی پی اْس گٱپ\n*جی پی اْس هٱماْ جۊرٱ",
-       "namespacesall": "Ù\87Ù\85Ù\87",
+       "namespacesall": "Ù\87Ù±Ù\85Ù±",
        "monthsall": "همه ماهها",
        "semicolon-separator": "؛&#32;",
        "imgmultipagenext": "بٱلٛگاْ دینائی",
        "redirect-page": "دیارکار بٱلٛگاْ",
        "redirect-file": "نوم جانیا",
        "specialpages": "بٱلگاْیٱل ڤیجٱ",
-       "tag-filter": "[[Special:سٱرڌیسا|سٱرديس]]فیلتر:",
+       "tag-filter": "[[Special:سٱرڌیسٱل|سٱرديس]]فیلتر:",
        "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|سرديس|سرديسا}}]]: $2",
        "tags-active-yes": "هٱراٛ",
        "tags-active-no": "نٱ",
        "logentry-move-move": "$1 {{GENDER:$2|جا ب جا کردإ}} بألگأ $3 نأ سي $4",
        "logentry-move-move_redir": "$1 بٱلٛگاْ $3 ناْ ڤاْ $4 کاْ آلشڌ تور ڤیڌاْ {{GENDER:$2|کل کرڌ}}",
        "logentry-patrol-patrol-auto": "$1 نوسخهٔ $4 بٱلٛگاْ $3 ناْ خودکار ڤاْ عنڤان لرخوؤٱرداٛ {{GENDER:$2|دزاْ کونین}}",
-       "logentry-newusers-create": "هساڤ کارياري $1 {{GENDER:$2|راسد ڤابي}}",
+       "logentry-newusers-create": "هساڤ کاریاری $1 {{GENDER:$2|راسد ڤابی}}",
        "logentry-newusers-autocreate": "حساڤ $1  ڤاْ بارت خوڌکار {{GENDER:$2|ؤرکل آڤیڌاْ}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|سوڤار کرده}} $3",
        "searchsuggest-search": "جوستن {{SITENAME}}",
index 56fc976..72da302 100644 (file)
        "uploadstash-bad-path-invalid": "El camí no és vàlid.",
        "uploadstash-bad-path-unknown-type": "El tipus «$1» és desconegut.",
        "uploadstash-bad-path-unrecognized-thumb-name": "Nom de miniatura no reconegut.",
+       "uploadstash-bad-path-no-handler": "No s'ha trobat cap gestor per al tipus MIME $1 del fitxer $2.",
        "uploadstash-bad-path-bad-format": "La clau «$1» no està en un format adequat.",
        "uploadstash-file-not-found-no-thumb": "No s'ha pogut obtenir una miniatura.",
+       "uploadstash-file-not-found-no-local-path": "No hi ha cap camí local per a l'element escalat.",
        "uploadstash-file-not-found-missing-content-type": "Manca una capçalera de tipus de contingut.",
        "uploadstash-file-not-found-not-exists": "No es pot trobar el camí, o bé no és un fitxer pla.",
        "uploadstash-file-too-large": "No es pot servir un fitxer més gran de $1 bytes.",
        "ipb-blocklist": "Llista els blocatges existents",
        "ipb-blocklist-contribs": "Contribucions de {{GENDER:$1|$1}}",
        "ipb-blocklist-duration-left": "$1 restant",
+       "block-actions": "Accions per blocar:",
        "block-expiry": "Venciment",
+       "block-options": "Opcions adicionals:",
+       "block-prevent-edit": "Modificació",
+       "block-reason": "Motiu:",
+       "block-target": "Nom d'usuari o adreça IP:",
        "unblockip": "Desbloca l'usuari",
        "unblockiptext": "Empreu el següent formulari per restaurar l'accés d'escriptura a una adreça IP o un usuari prèviament blocat.",
        "ipusubmit": "Desbloca aquesta adreça",
index b3ed892..a3f2ce2 100644 (file)
        "content-model-text": "純文本",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "undo-failure": "Ĭng-ôi gūi bĭh biĕng-cĭk cĭ-găng ô chṳ̆ng-dók, cī bĭh biĕng-cĭk mâ̤-sāi huàng-nguòng.",
        "undo-summary": "Chṳ̄-siĕu [[Special:Contributions/$2|$2]]([[User talk:$2|Páng-gōng]])sū có̤ gì siŭ-gāi $1",
        "viewpagelogs": "看茲頁其歷史",
        "nohistory": "茲頁無修改歷史。",
index 4de5774..6c2a931 100644 (file)
        "textmatches": "Resultados por texto de página",
        "notextmatches": "No hay resultados por texto de página",
        "prevn": "$1 {{PLURAL:$1|anterior|anteriores}}",
-       "nextn": "{{PLURAL:$1|siguiente|siguientes $1}}",
+       "nextn": "{{PLURAL:$1|siguiente|$1 siguientes}}",
        "prev-page": "página anterior",
        "next-page": "página siguiente",
        "prevn-title": "$1 {{PLURAL:$1|resultado anterior|resultados anteriores}}",
        "istemplate": "transclusión",
        "isimage": "enlace de archivo",
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|$1 anteriores}}",
-       "whatlinkshere-next": "{{PLURAL:$1|siguiente|siguientes $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|siguiente|$1 siguientes}}",
        "whatlinkshere-links": "← enlaces",
        "whatlinkshere-hideredirs": "$1 redirecciones",
        "whatlinkshere-hidetrans": "$1 transclusiones",
index c5d47d2..821a48c 100644 (file)
@@ -8,7 +8,8 @@
                        "Mihai",
                        "Minisarm",
                        "Silviubogan",
-                       "Stelistcristi"
+                       "Stelistcristi",
+                       "Strainu"
                ]
        },
        "exif-imagewidth": "Lățime",
        "exif-compression-6": "JPEG (vechi)",
        "exif-copyrighted-true": "Sub incidența drepturilor de autor",
        "exif-copyrighted-false": "Statutul drepturilor de autor nu este definit",
+       "exif-photometricinterpretation-0": "Negru și alb (0 pentru alb)",
        "exif-photometricinterpretation-1": "Negru și alb (0 pentru negru)",
+       "exif-photometricinterpretation-3": "Paletă",
+       "exif-photometricinterpretation-4": "Mască de transparență",
+       "exif-photometricinterpretation-5": "Separat (Probabil CMYK)",
        "exif-unknowndate": "Dată necunoscută",
        "exif-orientation-1": "Normală",
        "exif-orientation-2": "Oglindită orizontal",
index 4c325c6..e55b6d4 100644 (file)
        "limitreport-expansiondepth": "Suurin laajennussyvyys",
        "limitreport-expensivefunctioncount": "Vaativien jäsenninfunktioiden lukumäärä",
        "limitreport-unstrip-depth": "Unstrip-rekursion syvyys",
-       "limitreport-unstrip-size": "Unstrip laajennuksen jälkeinen koko",
+       "limitreport-unstrip-size": "Unstrip-laajennuksen jälkeinen koko",
        "limitreport-unstrip-size-value": "$1/$2 {{PLURAL:$2|tavu|tavua}}",
        "expandtemplates": "Laajenna mallineet",
        "expand_templates_intro": "Tämä toimintosivu ottaa syötteeksi wikitekstiä ja laajentaa kaikki siinä olevat mallineet rekursiivisesti.\nSe myös laajentaa tuetut parserifunktiot kuten\n<code><nowiki>{{</nowiki>#language:...}}</code> ja -muuttujat kuten\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nKäytännössä se laajentaa melkein kaiken, joka on kaksoisaaltosulkeiden sisällä.",
index e796ea9..471b4bf 100644 (file)
        "mergelog": "Vilin korpacho sotr",
        "revertmerge": "Doxim kor",
        "history-title": "\"$1\" hachea uzollnnecho itihas",
-       "difference-title": "\"$1\"-chea avruttint ontor",
+       "difference-title": "\"$1\"-chea avrutint ontor",
        "lineno": "Line ank $1:",
        "compareselectedversions": "Nivodloleo uzollneo comparar kor",
        "editundo": "kel'lem portavchem",
index 0bc8761..bd5c2ac 100644 (file)
        "notanarticle": "זהו אינו דף תוכן",
        "notvisiblerev": "הגרסה האחרונה שנוצרה על־ידי משתמש אחר נמחקה",
        "watchlist-details": "ברשימת המעקב שלך יש {{PLURAL:$1|דף אחד|$1 דפים}} (ובנוסף {{PLURAL:$1|אליו, דף|להם, דפי}} שיחה).",
-       "wlheader-enotif": "×\94×\95×\93×¢×\95ת ×\93×\95×\90\"×\9c ×\9e×\90×\95פשרות.",
+       "wlheader-enotif": "×\94×\95×\93×¢×\95ת ×\93×\95×\90\"×\9c ×\9e×\95פע×\9cות.",
        "wlheader-showupdated": "דפים שהשתנו מאז ביקורך האחרון בהם מוצגים ב<strong>הדגשה</strong>.",
        "wlnote": "להלן {{PLURAL:$1|השינוי האחרון|<strong>$1</strong> השינויים האחרונים}} {{PLURAL:$2|בשעה האחרונה|בשעתיים האחרונות|ב־<strong>$2</strong> השעות האחרונות}}, עד $4, $3.",
        "wlshowlast": "הצגת $1 שעות אחרונות $2 ימים אחרונים",
index 1b9a70a..29ceecb 100644 (file)
@@ -95,7 +95,8 @@
                        "Fitoschido",
                        "Tavleen",
                        "Jayantanth",
-                       "Gopalindians"
+                       "Gopalindians",
+                       "Prong$31"
                ]
        },
        "tog-underline": "कड़ी रेखांकित:",
        "returnto": "$1 को लौटें।",
        "tagline": "{{SITENAME}} से",
        "help": "सहायता",
+       "help-mediawiki": "मीडियाविकि के बारे में सहायता",
        "search": "खोज",
        "search-ignored-headings": " #<!-- इस पंक्ति को जैसा है वैसा ही रहने दें। --> <pre>\n# शीर्षक, जिसे खोजते समय अनदेखा कर दिया जाता है।\n# इसमें कोई भी बदलाव तुरंत दिखाई देता है, जब वह शीर्षक इंडेक्स हो जाता है।\n# आप किसी पृष्ठ को फिर से इंडेक्स करने के लिए रिक्त सम्पादन कर सकते हैं।\n# इन चिन्हों का पालन करें:\n#   * हर चीज जो \"#\" से शुरू होता है, वह केवल टिप्पणी है।\n#   * हर बिना रिक्त पंक्ति एक सटीक शीर्षक है, जो रूप आदि हर चीज को अनदेखा कर देता है।\nसन्दर्भ\nबाहरी कड़ियाँ\nइन्हें भी देखें\n #</pre> <!-- इस पंक्ति को जैसा है वैसा ही रहने दें।  -->",
        "searchbutton": "खोजें",
        "editpage-invalidcontentmodel-text": "सामग्री मॉडल \"$1\" समर्थित नहीं है।",
        "editpage-notsupportedcontentformat-title": "सामग्री स्वरूप समर्थित नहीं है",
        "editpage-notsupportedcontentformat-text": "$1 सामग्री स्वरूप $2 सामग्री मॉडल द्वारा समर्थित नहीं है।",
+       "slot-name-main": "मुख्य",
        "content-model-wikitext": "विकिपाठ्य",
        "content-model-text": "सामान्य पाठ",
        "content-model-javascript": "जावास्क्रिप्ट",
        "group-autoconfirmed": "स्वतः स्थापित सदस्य",
        "group-bot": "बॉट",
        "group-sysop": "प्रबंधक",
+       "group-interface-admin": "अन्तरफलक प्रबंधक",
        "group-bureaucrat": "प्रशासक",
        "group-suppress": "छुपाने वाले",
        "group-all": "(सभी)",
        "rcfilters-other-review-tools": "दूसरे समीक्षा उपकरण",
        "rcfilters-group-results-by-page": "पेज द्वारा समूह परिणाम",
        "rcfilters-activefilters": "सक्रिय फिल्टर",
+       "rcfilters-activefilters-hide": "छुपाएँ",
+       "rcfilters-activefilters-show": "दिखाएँ",
        "rcfilters-advancedfilters": "उन्नत फ़िल्टर",
        "rcfilters-limit-title": "दिखाने के लिए परिणाम",
        "rcfilters-limit-and-date-label": "{{PLURAL:$1|बदलाव|$1 परिवर्तन}}, $2",
        "apisandbox-dynamic-error-exists": "प्राचल नाम \"$1\" पहले से मौजूद है।",
        "apisandbox-deprecated-parameters": "प्राचल पुराना हो चुका है",
        "apisandbox-fetch-token": "टोकन स्वतः भरें",
+       "apisandbox-add-multi": "जोड़ें",
        "apisandbox-submit-invalid-fields-title": "कुछ जगह अमान्य है",
        "apisandbox-submit-invalid-fields-message": "कृपया चिन्हित जगह को ठीक कर दुबारा प्रयास करें।",
        "apisandbox-results": "परिणाम",
        "speciallogtitlelabel": "लक्ष्य (शीर्षक या \"{{ns:user}}:सदस्यनाम\" सदस्य हेतु):",
        "log": "लॉग",
        "logeventslist-submit": "दिखाएँ",
+       "logeventslist-patrol-log": "परीक्षण लॉग",
        "all-logs-page": "सभी सार्वजनिक लॉग",
        "alllogstext": "{{SITENAME}} की सभी उपलब्ध लॉगों की प्रविष्टियों का मिला-जुला प्रदर्शन।\nआप और बारीकी के लिए लॉग का प्रकार, सदस्य नाम (लघु-दीर्घ-अक्षर संवेदी), या प्रभावित पृष्ठ (लघु-दीर्घ-अक्षर संवेदी) चुन सकते हैं।",
        "logempty": "लॉग में ऐसी प्रविष्टि नहीं है।",
        "dellogpage": "हटाने का लॉग",
        "dellogpagetext": "नीचे हाल में हटाए गये पृष्ठों की सूची है।",
        "deletionlog": "हटाने का लॉग",
+       "log-name-create": "पृष्ठ निर्माण लॉग",
        "reverted": "पुराने अवतरण को पूर्ववत किया",
        "deletecomment": "कारण:",
        "deleteotherreason": "अन्य/अतिरिक्त कारण:",
        "ipb-disableusertalk": "इस प्रयोक्ता को अवरुद्ध होने पर स्वयं का वार्ता पृष्ठ सम्पादन करने से रोकें",
        "ipb-change-block": "इन जमावों के साथ सदस्य को फिर से अवरोधित करें",
        "ipb-confirm": "अवरोधण की पुष्टि करें",
+       "ipb-pages-label": "पृष्ठ",
        "badipaddress": "अमान्य आईपी पता।",
        "blockipsuccesssub": "अवरोधन सफल ।(संपादन करने से रोक दिया गया है)",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] को ब्लॉक किया जा चुका है।<br />\nब्लॉकों की समीक्षा के लिए [[Special:BlockList|ब्लॉक लॉग]] देखें।",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} के लिए योगदान",
        "ipb-blocklist-duration-left": "$1 बाकी",
        "block-expiry": "समाप्ति:",
+       "block-reason": "कारण:",
        "unblockip": "सदस्य को अनब्लॉक करें",
        "unblockiptext": "पहले ब्लॉक किये हुए आईपी एड्रेस या सदस्यनाम को अनब्लॉक करने के लिये नीचे दिया गया फार्म भरें।",
        "ipusubmit": "यह अवरोध हटाएँ",
        "thumbnail_dest_directory": "लक्ष्य डाइरेक्टरी बना नहीं पा रहें हैं",
        "thumbnail_image-type": "इस प्रकार की छवि समर्थित नहीं है",
        "thumbnail_gd-library": "अवैध जीडी लाइब्रेरी जमाव: कार्यसमूह $1 मौजूद नहीं है",
+       "thumbnail_image-size-zero": "चित्र का आकार शून्य प्रतीत हो रहा है",
        "thumbnail_image-missing": "लगता है संचिका नामौजूद है: $1",
        "thumbnail_image-failure-limit": "हाल के समय में इस थंबनेल को दूसरा रूप देने के कई असफल प्रयास हुए हैं ($1 या उससे अधिक) । कृपया फिर से प्रयास कुछ समय बाद कीजिए।",
        "import": "पृष्ठ आयात करें",
        "pageinfo-display-title": "प्रदर्शित शीर्षक",
        "pageinfo-default-sort": "डिफ़ॉल्ट सॉर्ट की",
        "pageinfo-length": "पृष्ठ आकार (बाइट्स में)",
+       "pageinfo-namespace": "नामस्थान",
        "pageinfo-article-id": "पृष्ठ आइ॰डी",
        "pageinfo-language": "पृष्ठ सामग्री भाषा",
        "pageinfo-language-change": "परिवर्तन",
        "confirm-unwatch-top": "यह पृष्ठ अपने ध्यानसूचीसे हटाएं?",
        "confirm-rollback-button": "ठीक है",
        "confirm-rollback-top": "इस पृष्ठ के सम्पादन पूर्ववत करें?",
+       "mcrundofailed": "वापस लेना असफल रहा",
        "semicolon-separator": ";",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← पिछला पृष्ठ",
        "version-specialpages": "विशेष पृष्ठ",
        "version-parserhooks": "पार्सर हूक",
        "version-variables": "वेरिएबल",
+       "version-editors": "सम्पादक",
        "version-antispam": "अवांछित-ईमेल रोकथाम",
        "version-other": "अन्य",
        "version-mediahandlers": "मीडिया संचालक",
index 4d474d2..651a2d3 100644 (file)
        "pager-older-n": "{{PLURAL:$1|starija $1|starije $1|starijih $1}}",
        "suppress": "Izvrši nadgled",
        "querypage-disabled": "Ova posebna stranica onemogućena je jer bi usporila funkcioniranje projekta.",
-       "apihelp": "Pomoć za API",
+       "apihelp": "Pomoć za prilog",
        "apihelp-no-such-module": "Modul »$1« nije pronađen.",
        "apisandbox": "Stranica za vježbanje API-ja",
        "apisandbox-submit": "Napraviti zahtjev",
index 0908cd2..db44cc4 100644 (file)
        "createaccount": "Ստեղծել նոր հաշիվ",
        "userlogin-resetpassword-link": "Մոռացե՞լ եք գաղտնաբառը",
        "userlogin-helplink2": "Մուտք գործելու օգնություն",
-       "userlogin-loggedin": "Դուք արդեն մտել է որպես {{GENDER:$1|$1}}.\nՕգտագործեք ստորև բերված ձևը մուտք գործելու համար այլ հաշից",
+       "userlogin-loggedin": "Դուք արդեն մտել է որպես {{GENDER:$1|$1}}։\nՕգտագործե՛ք ստորև բերված ձևը այլ մասնակցային անվամբ մուտք գործելու համար։",
        "userlogin-reauth": "Դուք պետք է կրկին մուտք գործեք համակարգ` հաստատելու, որ դուք դուք եք {{GENDER:$1|$1}}։",
        "userlogin-createanother": "Ստեղծել այլ հաշիվ",
        "createacct-emailrequired": "Էլ–փոստի հասցե",
index 5e14dfb..a4fc223 100644 (file)
        "logentry-block-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} con una scadenza di $5 $6",
        "logentry-block-unblock": "$1 {{GENDER:$2|ha sbloccato}} {{GENDER:$4|$3}}",
        "logentry-block-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} con una scadenza di $5 $6",
-       "logentry-partialblock-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} dalla modifica {{PLURAL:$8|della pagina|delle pagine}} $7 con una scadenza di $5 $6",
+       "logentry-partialblock-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} nella scrittura {{PLURAL:$8|di|delle pagine}} $7 con una scadenza di $5 $6",
        "logentry-partialblock-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} bloccando la modifica {{PLURAL:$8|della pagina|delle pagine}} $7 con una scadenza di $5 $6",
+       "logentry-non-editing-block-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} in specifiche azioni non di scrittura con una scadenza di $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} con una scadenza di $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} con una scadenza di $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|ha importato}} $3 tramite caricamento",
index 13550d6..830e9a1 100644 (file)
        "badarticleerror": "Šo darbību nevar veikt šajā lapā.",
        "cannotdelete": "Nevar izdzēst lapu vai failu $1. Iespējams, to jau ir izdzēsis kāds cits.",
        "cannotdelete-title": "Nevar izdzēst lapu \"$1\"",
+       "delete-scheduled": "Lapas \"$1\" dzēšana ir ieplānota.\nSaglabā pacietību.",
        "delete-hook-aborted": "Aizķere pārtraukusi dzēšanas operāciju.\nPaskaidrojums nav saņemts.",
        "no-null-revision": "Neizdevās izveidot jaunu nulles versiju lapai \"$1\"",
        "badtitle": "Nepiemērots nosaukums",
        "prefs-advancedwatchlist": "Papildu iespējas",
        "prefs-displayrc": "Pamatuzstādījumi",
        "prefs-displaywatchlist": "Pamatuzstādījumi",
+       "prefs-changesrc": "Rādītās izmaiņas",
+       "prefs-changeswatchlist": "Rādītās izmaiņas",
        "prefs-pageswatchlist": "Uzraudzītās lapas",
        "prefs-tokenwatchlist": "Marķieris",
        "prefs-diffs": "Izmaiņas",
index 3fc5865..719c403 100644 (file)
        "iranian-calendar-m10": "Деј",
        "iranian-calendar-m11": "Бахман",
        "iranian-calendar-m12": "Есфанд",
-       "hijri-calendar-m1": "Ð\9cÑ\83Ñ\85аÑ\80ам",
-       "hijri-calendar-m2": "Сафар",
-       "hijri-calendar-m3": "Раби ел-ауал",
-       "hijri-calendar-m4": "Раби ел-тани",
-       "hijri-calendar-m5": "Џумада ел-ауал",
-       "hijri-calendar-m6": "Џумада ел-тани",
-       "hijri-calendar-m7": "Раџаб",
-       "hijri-calendar-m8": "Шабан",
-       "hijri-calendar-m9": "Рамадан",
-       "hijri-calendar-m10": "Шавал",
-       "hijri-calendar-m11": "Ð\94Ñ\83 ÐµÐ»-Ð\9aида",
-       "hijri-calendar-m12": "Ð\94Ñ\83 ÐµÐ»-ХиÑ\9fа",
+       "hijri-calendar-m1": "мÑ\83Ñ\85аÑ\80ем",
+       "hijri-calendar-m2": "сафер",
+       "hijri-calendar-m3": "реби ул-евел",
+       "hijri-calendar-m4": "реби ул-ахир",
+       "hijri-calendar-m5": "џумаде ел-евел",
+       "hijri-calendar-m6": "џумаде ел-ухра",
+       "hijri-calendar-m7": "реџеб",
+       "hijri-calendar-m8": "шабан",
+       "hijri-calendar-m9": "рамазан",
+       "hijri-calendar-m10": "шевал",
+       "hijri-calendar-m11": "зÑ\83л ÐºÐ°Ð´Ðµ",
+       "hijri-calendar-m12": "зÑ\83л Ñ\85иÑ\9fе",
        "hebrew-calendar-m1": "тишри",
        "hebrew-calendar-m2": "хешван",
        "hebrew-calendar-m3": "кислев",
index 9aaddc1..d56dbb1 100644 (file)
        "prefs-emailconfirm-label": "विपत्र निश्चितीकरण:",
        "youremail": "विपत्र:",
        "username": "{{GENDER:$1|सदस्यनाम}}:",
-       "prefs-memberingroups": "{{PLURAL:$1|गटातील|गटांतील}}{{GENDER:$2|सदस्य}} :",
+       "prefs-memberingroups": "या {{PLURAL:$1|गटातील|गटांतील}} {{GENDER:$2|सदस्य}}:",
        "group-membership-link-with-expiry": "$1 ($2 पर्यंत)",
        "prefs-registration": "नोंदणीची वेळ:",
        "yourrealname": "खरे नाव:",
        "prefs-advancedwatchlist": "प्रगत पर्याय",
        "prefs-displayrc": "दर्शन पर्याय",
        "prefs-displaywatchlist": "प्रदर्शन पर्याय",
+       "prefs-changesrc": "दाखविलेले बदल",
+       "prefs-changeswatchlist": "दाखविलेले बदल",
        "prefs-tokenwatchlist": "ओळखचिन्ह",
        "prefs-diffs": "फरक",
        "prefs-help-prefershttps": "हा पसंतीक्रम आपल्या पुढील आल्याची नोंद केल्यानंतर कार्यान्वित होईल.",
index 1a1b018..6c2a867 100644 (file)
        "specialpages-group-developer": "Utviklerverktøy",
        "blankpage": "Tom side",
        "intentionallyblankpage": "Denne siden er tom med vilje",
+       "disabledspecialpage-disabled": "Denne siden har blitt slått av av en systemadministrator.",
        "external_image_whitelist": "#La denne linja være som den er<pre>\n#Skriv fragmenter av regulære uttrykk (delen som går mellom //) nedenfor\n#Disse vil sjekkes mot adresser til bilder fra eksterne sider\n#De som blir godkjent vil vises, ellers vil det gis en lenke til bildet\n#Linjer som begynner med # anses som kommentarer\n#Det skilles ikke mellom store og små bokstaver\n\n#Skriv alle fragmenter av regulære uttrykk over denne lina. La denne linja være som den er</pre>",
        "tags": "Gyldige endringstagger",
        "tag-filter": "Filter for [[Special:Tags|tagger]]:",
index 8228b25..9ddd327 100644 (file)
        "versionrequired": "میڈیا وکی دا $1 ورژن چائیدا اے۔",
        "versionrequiredtext": "میڈیا وکی دا $1 ورژن اس صفحے نوں ویکھن واسطے چائیدا اے۔\n[[Special:Version|ورژن آلا صفحہ]] وکیھو",
        "ok": "ٹھیک اے",
+       "backlinksubtitle": "→ $1",
        "retrievedfrom": "\"$1\" توں لیا",
        "youhavenewmessages": "تواڈے لئی $1 ($2).",
        "youhavenewmessagesmulti": "تھاڈے ل‏ی $1 تے نوں سنیعہ اے۔",
        "nospecialpagetext": "<strong>تساں اک ناں منیا جان والا خاص صفہ منگیا اے.</strong>\n\nاک لسٹ خاص منے جان والے صفیاں تے ایتھے مل سکدی اے[[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "غلطی",
        "databaseerror": "ڈیٹابیس دی غلطی",
+       "databaseerror-error": "ایرر: $1",
        "laggedslavemode": "'''خبردار:''' صفے تے نیڑےتریڈے ہون والیاں تبدیلیاں کوئی نیں۔",
        "readonly": "ڈیٹابیس تے تالا",
        "enterlockreason": "تالا لان دی وجہ دسو تے اہ وی دسو جے کدوں تالا کھلے گا",
index 1984fd5..069224f 100644 (file)
        "prefs-editor": "Used in [[Special:Preferences]], tab \"Editing\" ({{int:prefs-editing}}).\n\n{{Identical|Editor}}",
        "prefs-preview": "Used in [[Special:Preferences]], tab \"Editing\".\n{{Identical|Preview}}",
        "prefs-advancedrc": "Used in [[Special:Preferences]], tab \"Recent changes\".\n{{Identical|Advanced options}}",
-       "prefs-advancedrendering": "Used in [[Special:Preferences]], tab \"Appearence\".\n{{Identical|Advanced options}}",
+       "prefs-advancedrendering": "Used in [[Special:Preferences]], tab \"Appearance\".\n{{Identical|Advanced options}}",
        "prefs-advancedsearchoptions": "Used in [[Special:Preferences]], tab \"Search options\".\n{{Identical|Advanced options}}",
        "prefs-advancedwatchlist": "Used in [[Special:Preferences]], tab \"Watchlist\".\n{{Identical|Advanced options}}",
        "prefs-displayrc": "\"Display\" is a noun that specifies the kind of \"options\". So translate as \"options about display\", not as \"display the options\".\n\nUsed in [[Special:Preferences]], tab \"Recent changes\". The display options refer to:\n* {{msg-mw|Recentchangesdays}}\n* {{msg-mw|Recentchangescount}}",
index 5f627d1..4f0e020 100644 (file)
        "returnto": "Înapoi la $1.",
        "tagline": "De la {{SITENAME}}",
        "help": "Ajutor",
+       "help-mediawiki": "Ajutor despre MediaWiki",
        "search": "Căutare",
        "search-ignored-headings": " #<!-- nu modificați acest rând --> <pre>\n# Titluri de secțiuni care vor fi ignorate de motorul de căutare.\n# Modificările efectuate aici își vor face efectul de îndată ce pagina care conține titlul de secțiune va fi indexată.\n# Puteți forța reindexarea paginii efectuând o modificare vidă.\n# Sintaxa este următoarea:\n#   * Orice rând precedat de caracterul „#” reprezintă un comentariu.\n#   * Orice rând nevid reprezintă exact titlu de secțiune de ignorat.\nReferințe\nLegături externe\nVezi și\n #</pre> <!-- nu modificați acest rând -->",
        "searchbutton": "Căutare",
        "editpage-invalidcontentmodel-text": "Modelul de conținut \"$1\" nu este acceptat.",
        "editpage-notsupportedcontentformat-title": "Formatul conținutului nu este acceptat",
        "editpage-notsupportedcontentformat-text": "Formatul de conținut $1 nu este acceptat de modelul de conținut $2.",
+       "slot-name-main": "Principal",
        "content-model-wikitext": "wikitext",
        "content-model-text": "text simplu",
        "content-model-javascript": "JavaScript",
        "localtime": "Ora locală:",
        "timezoneuseserverdefault": "Folosește ora implicită a wikiului ($1)",
        "timezoneuseoffset": "Altul (specifică diferența)",
+       "timezone-useoffset-placeholder": "Exemple de valori: \"-07:00\" sau \"01:00\"",
        "servertime": "Ora serverului:",
        "guesstimezone": "Încearcă determinarea automată a diferenței",
        "timezoneregion-africa": "Africa",
        "prefs-advancedwatchlist": "Opțiuni avansate",
        "prefs-displayrc": "Opțiuni de afișare",
        "prefs-displaywatchlist": "Opțiuni de afișare",
+       "prefs-changesrc": "Schimbări afișate",
+       "prefs-changeswatchlist": "Schimbări afișate",
        "prefs-pageswatchlist": "Pagini urmărite",
        "prefs-tokenwatchlist": "Jeton",
        "prefs-diffs": "Diferențe",
        "rcfilters-watchlist-markseen-button": "Marchează toate schimbările ca văzute",
        "rcfilters-watchlist-edit-watchlist-button": "Editați lista de pagini urmărite",
        "rcfilters-watchlist-showupdated": "Paginile care au fost modificate după ultima dumneavoastră vizită sunt afișate <strong>îngroșat</strong>.",
-       "rcfilters-preference-label": "Ascunde versiunea îmbunătățită a Schimbărilor Recente",
-       "rcfilters-preference-help": "Ascunde interfața schimbată în 2017 și toate uneltele adăugate de atunci.",
-       "rcfilters-watchlist-preference-label": "Ascunde versiunea îmbunătățită a liste de pagini urmărite",
+       "rcfilters-preference-label": "Folosește versiunea fără JavaScript",
+       "rcfilters-preference-help": "Încarcă Schimbările recente fără filtre de căutare sau evidențierea rezultatelor.",
+       "rcfilters-watchlist-preference-label": "Folosește versiunea fără JavaScript",
        "rcfilters-filter-showlinkedfrom-label": "Arată schimbările pe paginile către care există legături în",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Pages la care trimite</strong> pagina selectată",
        "rcfilters-filter-showlinkedto-label": "Arată schimbările din paginile ce trimit la",
        "ipb-blocklist-duration-left": "$1 a mai rămas",
        "block-actions": "Acțiuni pentru a bloca:",
        "block-expiry": "Expiră",
+       "block-options": "Opțiuni adiționale:",
+       "block-prevent-edit": "Modificare",
+       "block-reason": "Motiv:",
        "unblockip": "Deblochează adresă IP",
        "unblockiptext": "Folosiți formularul de mai jos pentru a restaura permisiunea de scriere pentru adrese IP sau nume de utilizator blocate anterior.",
        "ipusubmit": "Elimină blocarea",
        "pageinfo-display-title": "Titlu afișat",
        "pageinfo-default-sort": "Cheie de sortare implicită",
        "pageinfo-length": "Lungimea paginii (în octeți)",
+       "pageinfo-namespace": "Spațiu de nume",
        "pageinfo-article-id": "ID pagină",
        "pageinfo-language": "Limba conținutului paginii",
        "pageinfo-language-change": "modificare",
index 38f7521..d96d053 100644 (file)
        "postedit-confirmation-created": "ಈ ಪುಟೋನು ಉಂಡು ಮಾನ್ತುಂಡು.",
        "postedit-confirmation-saved": "ಇರೇನಾ ಸಂಪಾದನೆನ್ ಒರಿಪಾತುಂಡು.",
        "edit-already-exists": "ಪೊಸ ಪುಟೋನು ಉಂಡು ಮಲ್ಪರೆ ಅಯಿಜಿ. ಅವ್ವು ದುಂಬೇ ಉಂಡು.",
+       "slot-name-main": "ಮುಕ್ಯ",
        "content-model-wikitext": "ವಿಕಿಪಠ್ಯ",
+       "content-model-text": "ಸುಲಬೊತ ಪಠ್ಯ",
+       "content-model-javascript": "ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್",
+       "content-json-empty-object": "ಖಾಲಿ ವಿಸಯೊ",
        "undo-failure": "ನೆತ್ತ ನಡುಟು ಬೇತೆ ಬದಲಾವಣೆಲು ಆಯಿನೆಡ್ದಾತ್ರ ಈ ಬದಲಾವಣೆನ್ ದುಂಬುದಲೆಕೊ ಮಲ್ಪೆರೆ ಸಾದ್ಯೊ ಇಜ್ಜಿ.",
        "viewpagelogs": "ಈ ಪುಟೊತ ದಾಕಲೆಲೆನ್ ತೂಲೆ",
        "nohistory": "ಈ ಪುಟಕ್ ಬದಲಾವಣೆದ ಇತಿಹಾಸ ಇಜ್ಜಿ",
index dda88f9..a2440ea 100644 (file)
        "noindex-category": "غیر فہرست شدہ صفحات",
        "broken-file-category": "فائلوں کے شکستہ روابط پر مشتمل صفحات",
        "categoryviewer-pagedlinks": "($1) ($2)",
+       "category-header-numerals": "$1–$2",
        "about": "تعارف",
        "article": "صفحہ مواد",
        "newwindow": "(نئی ونڈو میں کھولیں)",
        "helppage-top-gethelp": "مدد",
        "mainpage": "صفحۂ اول",
        "mainpage-description": "صفحۂ اول",
-       "policy-url": "Project:حکمتِ عملی",
+       "policy-url": "Project:حکمت عملی",
        "portal": "دیوان عام",
        "portal-url": "Project:دیوان عام",
        "privacy": "اخفائے راز کے اصول",
        "versionrequired": "میڈیا ویکی کا $1 نسخہ لازمی چاہئیے.",
        "versionrequiredtext": "اِس صفحہ کو استعمال کرنے کیلئے میڈیاویکی کا $1 نسخہ چاہئیے.\n\n\nدیکھئے [[خاص:نسخہ|صفحۂ نسخہ]]",
        "ok": "ٹھیک ہے",
+       "pagetitle": "$1 - {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "→ $1",
        "retrievedfrom": "اخذ کردہ از «$1»",
        "ns-specialprotected": "خاص صفحات کی تدوین نہیں کی جاسکتی.",
        "titleprotected": "اس عنوان کو [[User:$1|$1]] نے تخلیق سے محفوظ کیا ہے.\nوجہ یہ بتائی گئی ہے: <em>$2</em>.",
        "filereadonlyerror": "فائل «$1» میں تبدیلی ممکن نہیں کیونکہ خزانہ فائل «$2» فقط خواندگی حالت میں ہے۔\n\nانتظامیہ کی جانب سے مقفل کرنے کی حسب ذیل توجیہ پیش کی گئی ہے:\n\n«$3»",
+       "invalidtitle": "غلط عنوان",
        "invalidtitle-knownnamespace": "«$2» نام فضا میں «$3» متن پر مشتمل عنوان نادرست ہے",
        "invalidtitle-unknownnamespace": "نامعلوم نام فضا عدد «$1» اور «$2» متن پر مشتمل عنوان نادرست ہے",
        "exception-nologin": "غیر داخل نوشتہ",
        "nocookiesnew": "کھاتۂ صارف بنادیا گیا ہے، لیکن آپ کا داخلہ نہیں ہوا۔\nصارفین کے داخلہ کے لیے {{SITENAME}} کوکیز استعمال کرتا ہے۔\nآپ کے ہاں کوکیز غیر فعال ہیں۔\nبراہِ مہربانی، انہیں فعال کریں، اور پھر اپنے نئے صارف نام اور کلمۂ شناخت (پاسورڈ) کے ساتھ داخل ہو جائیں۔",
        "nocookieslogin": "صارفین کے داخل ہونے کیلئے {{SITENAME}} کوکیز استعمال کرتا ہے.\nآپ کے ہاں کوکیز غیر فعال ہیں.\nانہیں فعال کرنے کے بعد پھر کوشش کیجئے.",
        "nocookiesfornew": "اس صارف نام کا کھاتہ نہیں بن سکا۔ہم اس بات کی وضاحت نہیں کر سکتے (کہ ایسا کیوں ہوا)، براہ مہربانی! آپ\nیقین کر لیں کہ آپ کی کوکیز فعال ہیں، صفحہ تازہ کریں اور پھر کوشش کریں۔",
+       "nocookiesforlogin": "{{int:nocookieslogin}}",
        "createacct-loginerror": "کھاتہ بن چکا ہے لیکن آپ اس میں خودکار طور پر داخل نہیں ہو سکے۔ براہ کرم [[Special:UserLogin|دستی طور پر داخل ہونے کی کوشش کریں]]۔",
        "noname": "آپ نے صحیح صارف نام نہیں چنا۔",
        "loginsuccesstitle": "داخلہ کامیاب",
        "autoblockid": "خودکار پابندی #$1",
        "block": "صارف مسدود کریں",
        "unblock": "صارف سے پابندی ہٹائیں",
-       "blockip": "داخلہ ممنوع برائے صارف",
+       "blockip": "{{GENDER:$1|صارف}} پر پابندی لگائیں",
+       "blockiptext": "کسی خاص آئی پی یا صارف کو بلاک کرنے کے لیے درج ذیل فارم استعمال کریں۔\nخیال رہے کہ یہ کارروائی محض تخریب کاری کی روک تھام کے لیے اور [[{{MediaWiki:Policy-url}}|پالیسی]] کے مطابق ہونی چاہیے۔ ذیل میں پابندی لگانے کی وجہ پوری وضاحت کے ساتھ درج کریں (مثلاً جن صفحوں میں تخریب کاری ہوئی ہے ان کے نام لکھیں)۔ آپ [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] سنٹیکس کی مدد سے آئی پی رینج کو بھی بلاک کر سکتے ہیں جن کی زیادہ سے زیادہ حد IPv4 کے لیے /$1 اور IPv6 کے لیے /$2 ہے۔",
        "ipaddressorusername": "آئی پی پتہ یا صارف نام:",
        "ipbreason": "وجہ:",
        "ipbreason-dropdown": "* پابندی کی عام وجوہات\n** غلط معلومات کا اندراج\n** صفحات سے متن کا مٹانا\n** بیرونی روابط میں بے کار روابط کی فاضل کاری\n** صفحات میں لغو چیزوں کا اندراج\n** بدتمیزی/بداخلاقی\n** متعدد کھاتوں کا استعمال\n** ناقابلِ قبول صارف نام",
index 3b8ea58..c0570cf 100644 (file)
@@ -10,7 +10,6 @@
     "selenium-test": "wdio ./tests/selenium/wdio.conf.js"
   },
   "devDependencies": {
-    "deepmerge": "1.3.2",
     "eslint-config-wikimedia": "0.10.0",
     "grunt": "1.0.3",
     "grunt-banana-checker": "0.6.0",
index f2251f5..01d2ba5 100644 (file)
                                        context.data.$textbox.val( result.data( 'text' ) );
                                        // .val() doesn't call any event handlers, so
                                        // let the world know what happened
-                                       context.data.$textbox.change();
+                                       context.data.$textbox.trigger( 'change' );
                                }
                                context.data.$textbox.trigger( 'change' );
                        }
                                                                }
                                                                // Always bring focus to the textbox, as that's probably where the user expects it
                                                                // if they were just typing.
-                                                               context.data.$textbox.focus();
+                                                               context.data.$textbox.trigger( 'focus' );
                                                        } )
                                        )
                                        .append(
                                                                }
                                                                // Always bring focus to the textbox, as that's probably where the user expects it
                                                                // if they were just typing.
-                                                               context.data.$textbox.focus();
+                                                               context.data.$textbox.trigger( 'focus' );
                                                        } )
                                                        .on( 'mousemove', function ( e ) {
                                                                context.data.selectedWithMouse = true;
index e359416..1e7a6e4 100644 (file)
@@ -3,7 +3,7 @@
  */
 ( function () {
        $( function () {
-               mw.util.$content.dblclick( function ( e ) {
+               mw.util.$content.on( 'dblclick', function ( e ) {
                        var $a;
                        // Recheck preference so extensions can do a hack to disable this code.
                        if ( parseInt( mw.user.options.get( 'editondblclick' ), 10 ) ) {
index d0cc117..6d45144 100644 (file)
                mw.rcfilters.ui.FilterTagMultiselectWidget.parent.prototype.doInputEscape.call( this );
 
                // Blur the input
-               this.input.$input.blur();
+               this.input.$input.trigger( 'blur' );
        };
 
        /**
index 426c47f..dc76085 100644 (file)
@@ -57,7 +57,7 @@
         * Respond to the user choosing a title
         */
        mw.rcfilters.ui.RclTargetPageWidget.prototype.onLookupMenuItemChoose = function () {
-               this.titleSearch.$input.blur();
+               this.titleSearch.$input.trigger( 'blur' );
        };
 
        /**
index 3882a95..f1364d1 100644 (file)
                        this.saveButton.toggle( isEdit );
 
                        if ( isEdit ) {
-                               this.editInput.$input.focus();
+                               this.editInput.$input.trigger( 'focus' );
                        }
                        this.editing = isEdit;
                }
index 83a39d4..19eac98 100644 (file)
                                } ).done( function ( ok ) {
                                        ok = ok || suppressErrors;
                                        that.setIcon( ok ? null : 'alert' );
-                                       that.setIconTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
+                                       that.setTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
                                } );
                        }
                },
                        apiCheckValid: function () {
                                var ok = this.getApiValue() !== undefined || suppressErrors;
                                this.setIcon( ok ? null : 'alert' );
-                               this.setIconTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
+                               this.setTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
                                return $.Deferred().resolve( ok ).promise();
                        }
                },
                                }
 
                                this.setIcon( ok ? null : 'alert' );
-                               this.setIconTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
+                               this.setTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
                                return $.Deferred().resolve( ok ).promise();
                        },
                        createTagItemWidget: function ( data, label ) {
                        apiCheckValid: function () {
                                var ok = this.getValue() !== null || suppressErrors;
                                this.setIcon( ok ? null : 'alert' );
-                               this.setIconTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
+                               this.setTitle( ok ? '' : mw.message( 'apisandbox-alert-field' ).plain() );
                                return $.Deferred().resolve( ok ).promise();
                        }
                }
                                                isInteger: true
                                        } );
                                        widget.setIcon = widget.input.setIcon.bind( widget.input );
-                                       widget.setIconTitle = widget.input.setIconTitle.bind( widget.input );
+                                       widget.setTitle = widget.input.setTitle.bind( widget.input );
                                        widget.getValidity = widget.input.getValidity.bind( widget.input );
                                        widget.paramInfo = pi;
                                        $.extend( widget, WidgetMethods.textInputWidget );
                this.outlineItem.setLevel( this.indentLevel );
                this.outlineItem.setLabel( this.displayText );
                this.outlineItem.setIcon( this.apiIsValid || suppressErrors ? null : 'alert' );
-               this.outlineItem.setIconTitle(
+               this.outlineItem.setTitle(
                        this.apiIsValid || suppressErrors ? '' : mw.message( 'apisandbox-alert-page' ).plain()
                );
        };
                                that.apiIsValid = Array.prototype.indexOf.call( arguments, false ) === -1;
                                if ( that.getOutlineItem() ) {
                                        that.getOutlineItem().setIcon( that.apiIsValid || suppressErrors ? null : 'alert' );
-                                       that.getOutlineItem().setIconTitle(
+                                       that.getOutlineItem().setTitle(
                                                that.apiIsValid || suppressErrors ? '' : mw.message( 'apisandbox-alert-page' ).plain()
                                        );
                                }
index 3ad6e29..b545164 100644 (file)
        mw.widgets.datetime.CalendarWidget.prototype.onPrevClick = function () {
                this.setFocusedDate( this.adjustDate( this.getFocusedDate(), 'month', -1 ) );
                if ( !this.$widget || OO.ui.contains( this.$element[ 0 ], document.activeElement, true ) ) {
-                       this.$element.focus();
+                       this.$element.trigger( 'focus' );
                }
        };
 
        mw.widgets.datetime.CalendarWidget.prototype.onNextClick = function () {
                this.setFocusedDate( this.adjustDate( this.getFocusedDate(), 'month', 1 ) );
                if ( !this.$widget || OO.ui.contains( this.$element[ 0 ], document.activeElement, true ) ) {
-                       this.$element.focus();
+                       this.$element.trigger( 'focus' );
                }
        };
 
                this.setFocusedDate( $button.getData() );
                this.setSelected( [ $button.getData() ] );
                if ( !this.$widget || OO.ui.contains( this.$element[ 0 ], document.activeElement, true ) ) {
-                       this.$element.focus();
+                       this.$element.trigger( 'focus' );
                }
        };
 
index 5e4df47..dff313d 100644 (file)
                        .oo-ui-buttonElement-button {
                                width: 100%;
                                border: 1px solid rgba( 255, 255, 255, 0 );
-                               .oo-ui-transition(
-                                       background-color @transition-base,
-                                       color @transition-base,
-                                       border-color @transition-base
-                               );
+                               .oo-ui-transition( ~'background-color @{transition-base}, color @{transition-base}, border-color @{transition-base}' );
                        }
 
                        &.mw-widgets-datetime-calendarWidget-extra .oo-ui-buttonElement-button {
index f4ad578..fee27c5 100644 (file)
         */
        mw.widgets.datetime.DateTimeInputWidget.prototype.focus = function () {
                if ( !this.getFocusedField().length ) {
-                       this.$fields.find( '.mw-widgets-datetime-dateTimeInputWidget-editField' ).first().focus();
+                       this.$fields.find( '.mw-widgets-datetime-dateTimeInputWidget-editField' ).first().trigger( 'focus' );
                }
                return this;
        };
index a0d6f4a..1dfc73b 100644 (file)
@@ -25,8 +25,7 @@
        }
 }
 
-.oo-ui-transition( @value1, @value2: X, ... ) {
-       @value: ~`'@{arguments}'.replace(/[\[\]]|\,\sX/g, '')`; // stylelint-disable-line function-comma-space-after, function-parentheses-space-inside, function-whitespace-after, value-keyword-case
+.oo-ui-transition( @value ) {
        -webkit-transition: @value;
        -moz-transition: @value;
        transition: @value;
index 4d58f18..3a71760 100644 (file)
                                                // Tabbing backward from text input: normal browser behavior
                                        } else {
                                                // Tabbing forward from text input: just focus the calendar
-                                               this.calendar.$element.focus();
+                                               this.calendar.$element.trigger( 'focus' );
                                                return false;
                                        }
                                }
                                if ( e.which === OO.ui.Keys.TAB ) {
                                        if ( e.shiftKey ) {
                                                // Tabbing backward from calendar: just focus the text input
-                                               this.textInput.$input.focus();
+                                               this.textInput.$input.trigger( 'focus' );
                                                return false;
                                        } else {
                                                // Tabbing forward from calendar: focus the text input, then allow normal browser
                                                // behavior to move focus to next focusable after it
-                                               this.textInput.$input.focus();
+                                               this.textInput.$input.trigger( 'focus' );
                                        }
                                }
                        }.bind( this ) );
                if ( userSelected ) {
                        // Prevent focusing the handle from reopening the calendar
                        this.closing = true;
-                       this.$handle.focus();
+                       this.$handle.trigger( 'focus' );
                        this.closing = false;
                }
 
                this.textInput.toggle( true );
                this.calendar.toggle( true );
 
-               this.textInput.$input.focus();
+               this.textInput.$input.trigger( 'focus' );
        };
 
        /**
index f1c0c6f..55d8cf5 100644 (file)
                mw.widgets.SearchInputWidget.parent.prototype.onLookupMenuItemChoose.apply( this, arguments );
 
                if ( this.performSearchOnClick ) {
-                       this.$element.closest( 'form' ).submit();
+                       this.$element.closest( 'form' ).trigger( 'submit' );
                }
        };
 
index 75e73be..41cd039 100644 (file)
@@ -23,6 +23,8 @@
  * @author Neil Kandalgaonkar <neilk@wikimedia.org>
  */
 
+use MediaWiki\Shell\Shell;
+
 /**
  * RandomImageGenerator: does what it says on the tin.
  * Can fetch a random image, or also write a number of them to disk with random filenames.
@@ -310,16 +312,16 @@ class RandomImageGenerator {
                // for now (only works if you have exiv2 installed, a program to read
                // and manipulate exif).
                if ( $wgExiv2Command ) {
-                       $cmd = wfEscapeShellArg( $wgExiv2Command )
-                               . " -M "
-                               . wfEscapeShellArg( "set Exif.Image.Orientation " . $orientation['exifCode'] )
-                               . " "
-                               . wfEscapeShellArg( $filename );
-
-                       $retval = 0;
-                       $err = wfShellExec( $cmd, $retval );
+                       $command = Shell::command( $wgExiv2Command,
+                               '-M',
+                               "set Exif.Image.Orientation {$orientation['exifCode']}",
+                               $filename
+                       )->includeStderr();
+
+                       $result = $command->execute();
+                       $retval = $result->getExitCode();
                        if ( $retval !== 0 ) {
-                               print "Error with $cmd: $retval, $err\n";
+                               print "Error with $command: $retval, {$result->getStdout()}\n";
                        }
                }
        }
@@ -396,22 +398,25 @@ class RandomImageGenerator {
         */
        public function writeImageWithCommandLine( $spec, $format, $filename ) {
                global $wgImageMagickConvertCommand;
-               $args = [];
-               $args[] = "-size " . wfEscapeShellArg( $spec['width'] . 'x' . $spec['height'] );
-               $args[] = wfEscapeShellArg( "xc:" . $spec['fill'] );
+
+               $args = [
+                       $wgImageMagickConvertCommand,
+                       '-size',
+                       $spec['width'] . 'x' . $spec['height'],
+                       "xc:{$spec['fill']}",
+               ];
                foreach ( $spec['draws'] as $draw ) {
                        $fill = $draw['fill'];
                        $polygon = self::shapePointsToString( $draw['shape'] );
                        $drawCommand = "fill $fill  polygon $polygon";
-                       $args[] = '-draw ' . wfEscapeShellArg( $drawCommand );
+                       $args[] = '-draw';
+                       $args[] = $drawCommand;
                }
-               $args[] = wfEscapeShellArg( $filename );
+               $args[] = $filename;
 
-               $command = wfEscapeShellArg( $wgImageMagickConvertCommand ) . " " . implode( " ", $args );
-               $retval = null;
-               wfShellExec( $command, $retval );
+               $result = Shell::command( $args )->execute();
 
-               return ( $retval === 0 );
+               return ( $result->getExitCode() === 0 );
        }
 
        /**
index 05ae2a3..58e617c 100644 (file)
@@ -1,13 +1,12 @@
 <?php
 
-class ComposerInstalledTest extends MediaWikiTestCase {
+class ComposerInstalledTest extends PHPUnit\Framework\TestCase {
 
        private $installed;
 
        public function setUp() {
                parent::setUp();
-               global $IP;
-               $this->installed = "$IP/tests/phpunit/data/composer/installed.json";
+               $this->installed = __DIR__ . "/../../../data/composer/installed.json";
        }
 
        /**
@@ -16,7 +15,7 @@ class ComposerInstalledTest extends MediaWikiTestCase {
         */
        public function testGetInstalledDependencies() {
                $installed = new ComposerInstalled( $this->installed );
-               $this->assertArrayEquals( [
+               $this->assertEquals( [
                'leafo/lessphp' => [
                        'version' => '0.5.0',
                        'type' => 'library',
@@ -494,6 +493,6 @@ class ComposerInstalledTest extends MediaWikiTestCase {
                        ],
                        'description' => 'The PHP Unit Testing framework.',
                ],
-               ], $installed->getInstalledDependencies(), false, true );
+               ], $installed->getInstalledDependencies() );
        }
 }
index ded5f8f..720fa6e 100644 (file)
@@ -1,14 +1,13 @@
 <?php
 
-class ComposerJsonTest extends MediaWikiTestCase {
+class ComposerJsonTest extends PHPUnit\Framework\TestCase {
 
        private $json, $json2;
 
        public function setUp() {
                parent::setUp();
-               global $IP;
-               $this->json = "$IP/tests/phpunit/data/composer/composer.json";
-               $this->json2 = "$IP/tests/phpunit/data/composer/new-composer.json";
+               $this->json = __DIR__ . "/../../../data/composer/composer.json";
+               $this->json2 = __DIR__ . "/../../../data/composer/new-composer.json";
        }
 
        /**
@@ -17,12 +16,12 @@ class ComposerJsonTest extends MediaWikiTestCase {
         */
        public function testGetRequiredDependencies() {
                $json = new ComposerJson( $this->json );
-               $this->assertArrayEquals( [
+               $this->assertEquals( [
                        'cdb/cdb' => '1.0.0',
                        'cssjanus/cssjanus' => '1.1.1',
                        'leafo/lessphp' => '0.5.0',
                        'psr/log' => '1.0.0',
-               ], $json->getRequiredDependencies(), false, true );
+               ], $json->getRequiredDependencies() );
        }
 
        public static function provideNormalizeVersion() {
index c765438..f5fcdbe 100644 (file)
@@ -1,13 +1,12 @@
 <?php
 
-class ComposerLockTest extends MediaWikiTestCase {
+class ComposerLockTest extends PHPUnit\Framework\TestCase {
 
        private $lock;
 
        public function setUp() {
                parent::setUp();
-               global $IP;
-               $this->lock = "$IP/tests/phpunit/data/composer/composer.lock";
+               $this->lock = __DIR__ . "/../../../data/composer/composer.lock";
        }
 
        /**
@@ -16,7 +15,7 @@ class ComposerLockTest extends MediaWikiTestCase {
         */
        public function testGetInstalledDependencies() {
                $lock = new ComposerLock( $this->lock );
-               $this->assertArrayEquals( [
+               $this->assertEquals( [
                        'wikimedia/cdb' => [
                                'version' => '1.0.1',
                                'type' => 'library',
@@ -115,7 +114,7 @@ class ComposerLockTest extends MediaWikiTestCase {
                                        'and configure its support in an easy way. ' .
                                        'Main features are language selection, input methods and web fonts.',
                        ],
-               ], $lock->getInstalledDependencies(), false, true );
+               ], $lock->getInstalledDependencies() );
        }
 
 }