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
$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
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.
* 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.
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.
* getTimeZoneList()
* mw.util.jsMessage(), deprecated in 1.20, was removed. Use mw.notify instead.
* (T61113) User::EDIT_TOKEN_SUFFIX was removed. It was deprecated since 1.27.
+* The 'mediawiki.api' module aliases, deprecated in 1.32, have been removed.
+ Specifically: mediawiki.api.category, mediawiki.api.edit,
+ mediawiki.api.login, mediawiki.api.options, mediawiki.api.parse,
+ mediawiki.api.upload, mediawiki.api.user, mediawiki.api.watch,
+ mediawiki.api.messages, and mediawiki.api.rollback.
+* The 'jquery.byteLimit' module alias for 'jquery.lengthLimit',
+ deprecated in 1.31, was removed.
=== Deprecations in 1.33 ===
* The configuration option $wgUseESI has been deprecated, and is expected
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
'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',
'LonelyPagesPage' => __DIR__ . '/includes/specials/SpecialLonelypages.php',
'LongPagesPage' => __DIR__ . '/includes/specials/SpecialLongpages.php',
'MIMEsearchPage' => __DIR__ . '/includes/specials/SpecialMIMEsearch.php',
+ 'MSCompoundFileReader' => __DIR__ . '/includes/libs/mime/MSCompoundFileReader.php',
'MWCallableUpdate' => __DIR__ . '/includes/deferred/MWCallableUpdate.php',
'MWContentSerializationException' => __DIR__ . '/includes/exception/MWContentSerializationException.php',
'MWCryptHKDF' => __DIR__ . '/includes/utils/MWCryptHKDF.php',
"description": "Version constraint string against PHP."
}
},
- "patternProprties": {
+ "patternProperties": {
"^ext-": {
"type": "string",
"description": "Required PHP extension.",
"description": "Version constraint string against PHP."
}
},
- "patternProprties": {
+ "patternProperties": {
"^ext-": {
"type": "string",
"description": "Required PHP extension.",
* @return array
*/
function wfArrayFilter( array $arr, callable $callback ) {
+ wfDeprecated( __FUNCTION__, '1.32' );
return array_filter( $arr, $callback, ARRAY_FILTER_USE_BOTH );
}
* @return array
*/
function wfArrayFilterByKey( array $arr, callable $callback ) {
+ wfDeprecated( __FUNCTION__, '1.32' );
return array_filter( $arr, $callback, ARRAY_FILTER_USE_KEY );
}
"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.",
"Jelou"
]
},
- "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentación]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correo]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> La API de MediaWiki es una interfaz madura y estable que se mejora y prueba activamente. Aunque tratamos de evitarlo, es posible que ocasionalmente debamos hacer cambios importantes. Suscríbase a la [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de correo mediawiki-api-announce] para recibir avisos de actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se enviará un encabezado HTTP con la clave «MediaWiki-API-Error» y, luego, el valor del encabezado y el código de error devuelto se establecerán en el mismo valor. Para obtener más información, consulte [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errores y advertencias]].\n\n<p class=\"mw-apisandbox-link\"><strong>Pruebas:</strong> Para facilitar la comprobación de las solicitudes de API, consulte [[Special:ApiSandbox]].</p>",
+ "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Documentación]]\n* [[mw:Special:MyLanguage/API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correo]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Anuncios API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> La API de MediaWiki es una interfaz madura y estable que se mejora y prueba activamente. Aunque tratamos de evitarlo, es posible que ocasionalmente debamos hacer cambios importantes. Suscríbete a la [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ lista de correo mediawiki-api-announce] para recibir avisos de actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se enviará un encabezado HTTP con la clave «MediaWiki-API-Error» y, luego, el valor del encabezado y el código de error devuelto se establecerán en el mismo valor. Para obtener más información, consulta [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Errores y advertencias]].\n\n<p class=\"mw-apisandbox-link\"><strong>Pruebas:</strong> Para facilitar la comprobación de las solicitudes de API, consulta [[Special:ApiSandbox]].</p>",
"apihelp-main-param-action": "Qué acción se realizará.",
"apihelp-main-param-format": "El formato de la salida.",
"apihelp-main-param-maxlag": "Se puede usar el retardo máximo cuando se instala MediaWiki en un clúster replicado de base de datos. Para evitar acciones que causen más retardo en la replicación del sitio, este parámetro puede hacer que el cliente espere hasta que el retardo en la replicación sea menor que el valor especificado. En caso de retardo excesivo, se devuelve el código de error <samp>maxlag</samp> con un mensaje como <samp>Esperando a $host: $lag segundos de retardo</samp>.<br />Consulta [[mw:Special:MyLanguage/Manual:Maxlag_parameter|Manual: parámetro Maxlag]] para más información.",
"apihelp-block-param-reblock": "Si la cuenta ya está bloqueada, sobrescribir el bloqueo existente.",
"apihelp-block-param-watchuser": "Vigilar las páginas de usuario y de discusión del usuario o de la dirección IP.",
"apihelp-block-param-tags": "Cambiar las etiquetas que aplicar a la entrada en el registro de bloqueos.",
- "apihelp-block-param-partial": "Bloquear a un usuario de determinadas páginas o espacios de nombres en lugar del sitio entero.",
+ "apihelp-block-param-partial": "Bloquear a un usuario en determinadas páginas o espacios de nombres en lugar del sitio entero.",
"apihelp-block-example-ip-simple": "Bloquear la dirección IP <kbd>192.0.2.5</kbd> durante 3 días por el motivo <kbd>First strike</kbd>.",
"apihelp-block-example-user-complex": "Bloquear al usuario <kbd>Vandal</kbd> indefinidamente con el motivo <kbd>Vandalism</kbd> y evitar que se cree nuevas cuentas o envíe correos.",
"apihelp-changeauthenticationdata-summary": "Cambiar los datos de autentificación para el usuario actual.",
"apihelp-query+search-param-interwiki": "Incluir resultados interwiki en la búsqueda, si es posible.",
"apihelp-query+search-param-backend": "Qué servidor de búsqueda utilizar, si no es el servidor por defecto.",
"apihelp-query+search-param-enablerewrites": "Habilitar la reescritura de consultas internas. Algunos servidores de búsqueda pueden reescribir la consulta a una que considere que da mejores resultados, por ejemplo, corrigiendo las faltas ortográficas.",
- "apihelp-query+search-param-sort": "Fijar la ordenación de los resultados devueltos.",
+ "apihelp-query+search-param-sort": "Establecer el orden de clasificación de los resultados devueltos.",
"apihelp-query+search-example-simple": "Buscar <kbd>meaning</kbd>.",
"apihelp-query+search-example-text": "Buscar <kbd>meaning</kbd> en los textos.",
"apihelp-query+search-example-generator": "Obtener información acerca de las páginas devueltas por una búsqueda de <kbd>meaning</kbd>.",
"apierror-badvalue-notmultivalue": "El separador multivalor U+001F solo se puede utilizar en parámetros multivalorados.",
"apierror-blockedfrommail": "Se te ha bloqueado de enviar email.",
"apierror-blocked": "Se te ha bloqueado de editar.",
- "apierror-blocked-partial": "Se te ha bloqueado de editar esta página.",
+ "apierror-blocked-partial": "Se ha bloqueado tu edición en esta página.",
"apierror-botsnotsupported": "Esta interfaz no está disponible para bots.",
"apierror-cannotreauthenticate": "Esta acción no está disponible, ya que tu identidad no se puede verificar.",
"apierror-cannotviewtitle": "No tienes permiso para ver $1.",
"apihelp-feedrecentchanges-param-limit": "Највеќе ставки во исходот за прикажување.",
"apihelp-feedrecentchanges-param-from": "Прикажи ги промените оттогаш.",
"apihelp-feedrecentchanges-param-hideminor": "Скриј ги ситните промени.",
- "apihelp-feedrecentchanges-param-hidebots": "Скриј ги промените напарвени од ботови.",
+ "apihelp-feedrecentchanges-param-hidebots": "Скриј ги промените направени од ботови.",
"apihelp-feedrecentchanges-param-hideanons": "Скриј ги промените направени од анонимни корисници.",
"apihelp-feedrecentchanges-param-hideliu": "Скриј ги промените направени од регистрирани корисници.",
"apihelp-feedrecentchanges-param-hidepatrolled": "Скриј ги испатролираните промени.",
"apihelp-compare-param-fromrev": "要比對的第一個修訂。",
"apihelp-compare-param-frompst": "在 <var>fromtext-{slot}</var> 進行預先儲存轉換。",
"apihelp-compare-param-fromslots": "覆蓋由 <var>fromtitle</var>、<var>fromid</var> 或 <var>fromrev</var> 指定的修訂內容。\n\n此參數指定要變動的間隔。使用 <var>fromtext-{slot}</var>、<var>fromcontentmodel-{slot}</var>、與 <var>fromcontentformat-{slot}</var> 來指定各間隔的內容。",
+ "apihelp-compare-param-fromtext-{slot}": "指定間隔的文字。若忽略的話,間隔會從修訂中移除。",
"apihelp-compare-param-fromcontentmodel-{slot}": "<var>fromtext-{slot}</var> 內容模組。若不提供,則會根據其它參數猜測。",
"apihelp-compare-param-fromcontentformat-{slot}": "<var>fromtext-{slot}</var> 的內容序列化格式。",
"apihelp-compare-param-fromtext": "指定 <kbd>fromslots=main</kbd> 並改用 <var>fromtext-main</var>。",
"apihelp-compare-param-fromcontentmodel": "指定 <kbd>fromslots=main</kbd> 並改使用 <var>fromcontentmodel-main</var>。",
"apihelp-compare-param-fromcontentformat": "指定 <kbd>fromslots=main</kbd> 並改使用 <var>fromcontentformat-main</var>。",
+ "apihelp-compare-param-fromsection": "僅使用 'from' 內容的指定段落。",
"apihelp-compare-param-totitle": "要比對的第二個標題。",
"apihelp-compare-param-toid": "要比對的第二個頁面 ID。",
"apihelp-compare-param-torev": "要比對的第二個修訂。",
"apihelp-compare-param-topst": "在 <var>totext</var> 執行預先保存轉換。",
+ "apihelp-compare-param-totext-{slot}": "指定間隔的文字。若忽略的話,間隔會從修訂中移除。",
"apihelp-compare-param-tocontentmodel-{slot}": "<var>totext-{slot}</var> 內容模組。若不提供,則會基於其它參數來猜測。",
"apihelp-compare-param-tocontentformat-{slot}": "<var>totext-{slot}</var> 的內容序列化格式。",
"apihelp-compare-param-totext": "指定 <kbd>toslots=main</kbd> 並改用 <var>totext-main</var>。",
"apihelp-compare-param-tocontentmodel": "指定 <kbd>toslots=main</kbd> 並改使用 <var>tocontentmodel-main</var>。",
"apihelp-compare-param-tocontentformat": "指定 <kbd>toslots=main</kbd> 並改使用 <var>tocontentformat-main</var>。",
+ "apihelp-compare-param-tosection": "僅使用 'to' 內容的指定段落。",
"apihelp-compare-param-prop": "要取得的資訊部份。",
"apihelp-compare-paramvalue-prop-diff": "HTML 差異。",
"apihelp-compare-paramvalue-prop-diffsize": "以位元組為單位的 HTML 差異大小。",
"apihelp-compare-paramvalue-prop-comment": "「from」與「to」修訂的註釋。",
"apihelp-compare-paramvalue-prop-parsedcomment": "「from」與「to」修訂的解析註釋。",
"apihelp-compare-paramvalue-prop-size": "「from」與「to」修訂的大小。",
+ "apihelp-compare-param-slots": "回傳這些間隔的個別差異,而不是由所有間隔所合併出的單一差異。",
"apihelp-compare-example-1": "建立修訂 1 與 1 的差異檔",
"apihelp-createaccount-summary": "建立新使用者帳號。",
"apihelp-createaccount-example-create": "開始建立使用者 <kbd>Example</kbd> 與密碼 <kbd>ExamplePassword</kbd> 的過程。",
"apihelp-parse-param-pst": "在解析之前執行在輸入裡的預先儲存轉換。僅當與文字使用時有效。",
"apihelp-parse-param-onlypst": "在輸入裡進行預先儲存轉換(pre-save transform、PST)但不解析。在 PST 已套用後回傳相同的 wiki 文字。僅與 <var>$1text</var> 使用時有效。",
"apihelp-parse-param-effectivelanglinks": "包含由擴充提供的語言連結(與 <kbd>$1prop=langlinks</kbd> 一起使用)。",
+ "apihelp-parse-param-sectiontitle": "新段落標題當 <var>section</var> 為 <kbd>new</kbd> 時。\n\n不像頁面編輯,當省略或為空時不會退至 <var>summary</var>。",
"apihelp-parse-param-disablelimitreport": "從解析輸出內容裡省略限制報告(\"NewPP limit report\")。",
"apihelp-parse-param-disablepp": "請改用<var>$1disablelimitreport</var>。",
"apihelp-parse-param-disableeditsection": "從解析輸出內容省略編輯段落連結。",
"apihelp-query+mystashedfiles-paramvalue-prop-size": "索取檔案大小與圖片尺寸。",
"apihelp-query+mystashedfiles-paramvalue-prop-type": "索取檔案的 MIME 類型以及媒體類型。",
"apihelp-query+mystashedfiles-param-limit": "要取得的檔案數量。",
+ "apihelp-query+mystashedfiles-example-simple": "取得檔案鍵、檔案大小、以及在目前使用者上傳儲藏裡的檔案像素尺寸。",
"apihelp-query+alltransclusions-summary": "列出所有嵌入(頁面使用 {{x}} 來內嵌),包含不存在的。",
"apihelp-query+alltransclusions-param-from": "要起始列舉的嵌入標題。",
"apihelp-query+alltransclusions-param-to": "要終止列舉的嵌入標題。",
"apihelp-query+allusers-param-activeusers": "僅列出在最近 $1 {{PLURAL:$1|天|天}}裡活躍的使用者。",
"apihelp-query+allusers-example-Y": "列出以<kbd>Y</kbd>開頭的使用者。",
"apihelp-query+authmanagerinfo-summary": "取得目前身分核對狀態的資訊。",
+ "apihelp-query+authmanagerinfo-param-requestsfor": "索取關於指定驗證操作所需的驗證請求方面資訊。",
"apihelp-query+authmanagerinfo-example-login": "索取當開始登入時可能會用到的請求。",
"apihelp-query+authmanagerinfo-example-securitysensitiveoperation": "測試用於操作 <kbd>foo</kbd> 的認證是否足夠。",
"apihelp-query+backlinks-summary": "找出連結至指定頁面的所有頁面。",
"apihelp-query+categorymembers-example-simple": "取得在 <kbd>Category:Physics</kbd> 裡前 10 項的頁面。",
"apihelp-query+categorymembers-example-generator": "取得在 <kbd>Category:Physics</kbd> 裡前 10 個頁面的頁面資訊。",
"apihelp-query+contributors-summary": "取得頁面上登入貢獻者以及匿名貢獻者數量的清單。",
+ "apihelp-query+contributors-param-group": "僅包含在指定群組的使用者。不包含隱含或是自動晉升群組,像是:*、使用者、或是自動確認。",
+ "apihelp-query+contributors-param-excludegroup": "排除在指定群組的使用者。不包含隱含或是自動晉升群組,像是:*、使用者、或是自動確認。",
+ "apihelp-query+contributors-param-rights": "僅包含有指定權限的使用者。不包含透過由隱含或是自動晉升群組所授予的權限,像是:*、使用者、或是自動確認。",
+ "apihelp-query+contributors-param-excluderights": "排除有指定權限的使用者。不包含透過由隱含或是自動晉升群組所授予的權限,像是:*、使用者、或是自動確認。",
"apihelp-query+contributors-param-limit": "要回傳的貢獻人員數量。",
"apihelp-query+contributors-example-simple": "顯示頁面 <kbd>Main Page</kbd> 的貢獻者。",
"apihelp-query+deletedrevisions-summary": "取得已刪除修訂的資訊。",
"apihelp-query+filerepoinfo-paramvalue-prop-canUpload": "檔案是否可上傳至此儲存庫,例如透過 CORS 與共享驗證。",
"apihelp-query+filerepoinfo-paramvalue-prop-displayname": "人類可讀的儲存庫 wiki 名稱。",
"apihelp-query+filerepoinfo-paramvalue-prop-favicon": "儲存庫 wiki 的網頁圖標 URL,來自於 <var>[[mw:Special:MyLanguage/Manual:$wgFavicon|$wgFavicon]]</var>。",
+ "apihelp-query+filerepoinfo-paramvalue-prop-fetchDescription": "當檢視本地端檔案描述頁面時,是否從該儲存庫檢索檔案描述頁面。",
"apihelp-query+filerepoinfo-paramvalue-prop-initialCapital": "檔案是否隱式地以大寫字母開頭。",
"apihelp-query+filerepoinfo-paramvalue-prop-local": "儲存庫是否為本地端。",
"apihelp-query+filerepoinfo-paramvalue-prop-name": "儲存庫的要點 - 使用在像是 <var>[[mw:Special:MyLanguage/Manual:$wgForeignFileRepos|$wgForeignFileRepos]]</var> 與 [[Special:ApiHelp/query+imageinfo|imageinfo]] 所回傳的值。",
"apihelp-query+revisions+base-paramvalue-prop-parsedcomment": "由使用者對於修訂所解析的註釋。",
"apihelp-query+revisions+base-paramvalue-prop-content": "各修訂間隔的內容。",
"apihelp-query+revisions+base-paramvalue-prop-tags": "修訂標籤。",
+ "apihelp-query+revisions+base-paramvalue-prop-roles": "列出存在於修訂的內容間隔作用。",
"apihelp-query+revisions+base-paramvalue-prop-parsetree": "請改用 <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> 或 <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>。修訂內容的 XML 解析樹狀(需要內容模組 <code>$1</code>)。",
"apihelp-query+revisions+base-param-limit": "限制所回傳的修訂數量。",
"apihelp-query+revisions+base-param-expandtemplates": "請改用 <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd>。在修訂內容裡展開模板(需要 $1prop=content)。",
"apihelp-query+userinfo-paramvalue-prop-ratelimits": "列出所有套用到目前使用者的速率限制。",
"apihelp-query+userinfo-paramvalue-prop-realname": "添加使用者的真實姓名。",
"apihelp-query+userinfo-paramvalue-prop-email": "添加使用者的電子郵件地址與電子郵件驗證日期。",
+ "apihelp-query+userinfo-paramvalue-prop-acceptlang": "回響由在架構化格式客戶端所發送的 <code>Accept-Language</code> 標頭。",
"apihelp-query+userinfo-paramvalue-prop-registrationdate": "添加使用者的註冊日期。",
"apihelp-query+userinfo-paramvalue-prop-unreadcount": "添加未讀頁面數目在使用者的監視清單(最多 $1,若有更多則回傳 <samp>$2</samp>)。",
"apihelp-query+userinfo-paramvalue-prop-centralids": "替使用者添加中心 ID 與附加狀態。",
+ "apihelp-query+userinfo-param-attachedwiki": "以 <kbd>$1prop=centralids</kbd> 來表明使用者是否附加於由此 ID 所識別出的 wiki。",
"apihelp-query+userinfo-example-simple": "取得目前使用者的資訊。",
"apihelp-query+userinfo-example-data": "取得目前使用者的額外資訊。",
"apihelp-query+users-summary": "取得有關使用者清單的資訊。",
"apihelp-query+users-paramvalue-prop-gender": "標記使用者性別。回傳「male」、「female」、或「unknown」。",
"apihelp-query+users-paramvalue-prop-centralids": "替使用者添加中心 ID 與附加狀態。",
"apihelp-query+users-paramvalue-prop-cancreate": "表明是否可替有效但尚未註冊的使用者名稱建立帳號。",
+ "apihelp-query+users-param-attachedwiki": "以 <kbd>$1prop=centralids</kbd> 來表明使用者是否附加於由此 ID 所識別出的 wiki。",
"apihelp-query+users-param-users": "要獲取的使用者清單。",
"apihelp-query+users-param-userids": "要獲取的使用者 ID 清單。",
"apihelp-query+users-param-token": "請改用 <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>。",
"apihelp-watch-example-generator": "監視在主命名空間最前的幾個頁面。",
"apihelp-format-example-generic": "以 $1 格式傳回查詢結果。",
"apihelp-json-summary": "使用 JSON 格式輸出資料。",
+ "apihelp-json-param-callback": "若有指定,將輸出包在指定的函式調用。出於安全考量,會限制所有使用者特定資料。",
"apihelp-json-param-ascii": "若有指定,編碼所有使用十六進位轉義序列的非 ASCII。預設當 <var>formatversion</var> 為 <kbd>1</kbd> 時。",
"apihelp-jsonfm-summary": "使用 JSON 格式輸出資料 (使用 HTML 格式顯示)。",
"apihelp-none-summary": "不輸出。",
"api-pageset-param-titles": "要使用的標題清單。",
"api-pageset-param-pageids": "要使用的頁面 ID 清單。",
"api-pageset-param-revids": "要使用的修訂 ID 清單。",
+ "api-pageset-param-generator": "按執行指定查詢模組來取得進行的頁面清單。\n\n<strong>注意:</strong>產生器參數名稱必須以 \"g\" 作為前綴,請查看範例。",
"api-pageset-param-redirects-generator": "自動解決在 <var>$1titles</var>、<var>$1pageids</var>、<var>$1revids</var>,以及由 <var>$1generator</var> 所回傳頁面裡的重新導向。",
"api-pageset-param-redirects-nogenerator": "自動解決在 <var>$1titles</var>、<var>$1pageids</var>,與 <var>$1revids</var> 的重新導向。",
"api-help-title": "MediaWiki API 說明",
$srcPath = ( $src instanceof FSFile ) ? $src->getPath() : $src;
if ( !$props ) {
- if ( $this->repo->isVirtualUrl( $srcPath )
+ if ( FileRepo::isVirtualUrl( $srcPath )
|| FileBackend::isStoragePath( $srcPath )
) {
$props = $this->repo->getFileProps( $srcPath );
$archiveRel = $this->getArchiveRel( $archiveName );
if ( $repo->hasSha1Storage() ) {
- $sha1 = $repo->isVirtualUrl( $srcPath )
+ $sha1 = FileRepo::isVirtualUrl( $srcPath )
? $repo->getFileSha1( $srcPath )
: FSFile::getSha1Base36FromPath( $srcPath );
/** @var FileBackendDBRepoWrapper $wrapperBackend */
+++ /dev/null
-<?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;
- }
- }
-}
--- /dev/null
+<?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;
+ }
+ }
+}
* 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
*/
/**
* Returns the value of the given response header.
*
- * @param string $header
+ * @param string $header case-insensitive
* @return string|null
*/
public function getResponseHeader( $header ) {
*
* @ingroup Deployment
* @since 1.17
+ * @private
*/
class WebInstallerOutput {
$rlContext = new ResourceLoaderContext( $resourceLoader, new FauxRequest( [
'debug' => 'true',
- 'lang' => $this->getLanguageCode(),
+ 'lang' => $this->getLanguage()->getCode(),
'only' => 'styles',
] ) );
}
/**
- * @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' );
}
/**
*/
public function getHeadAttribs() {
return [
- 'dir' => $this->getDir(),
- 'lang' => LanguageCode::bcp47( $this->getLanguageCode() ),
+ 'dir' => $this->getLanguage()->getDir(),
+ 'lang' => $this->getLanguage()->getHtmlCode(),
];
}
<?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">
"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",
"Macofe",
"Mooozi",
"Ykhwong",
- "Jerrykim306"
+ "Jerrykim306",
+ "Comjun04"
]
},
"config-desc": "미디어위키를 위한 설치 관리자",
"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그림 섬네일이 비활성화됩니다.",
--- /dev/null
+<?php
+/*
+ * Copyright 2019 Wikimedia Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+// strlen() is actually pretty fast compared to just about any loop body
+// phpcs:disable Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
+
+/**
+ * Read the directory of a Microsoft Compound File Binary file, a.k.a. an OLE
+ * file, and detect the MIME type.
+ *
+ * References:
+ * - MS-CFB https://msdn.microsoft.com/en-us/library/dd942138.aspx
+ * - MS-XLS https://msdn.microsoft.com/en-us/library/cc313154.aspx
+ * - MS-PPT https://msdn.microsoft.com/en-us/library/cc313106.aspx
+ * - MS-DOC https://msdn.microsoft.com/en-us/library/cc313153.aspx
+ * - Python olefile https://github.com/decalage2/olefile
+ * - OpenOffice.org's Documentation of the Microsoft Compound Document
+ * File Format https://www.openoffice.org/sc/compdocfileformat.pdf
+ *
+ * @since 1.33
+ */
+class MSCompoundFileReader {
+ private $file;
+ private $header;
+ private $mime;
+ private $mimeFromClsid;
+ private $error;
+ private $errorCode;
+ private $valid = false;
+
+ private $sectorLength;
+ private $difat;
+ private $fat = [];
+ private $fileLength;
+
+ const TYPE_UNALLOCATED = 0;
+ const TYPE_STORAGE = 1;
+ const TYPE_STREAM = 2;
+ const TYPE_ROOT = 5;
+
+ const ERROR_FILE_OPEN = 1;
+ const ERROR_SEEK = 2;
+ const ERROR_READ = 3;
+ const ERROR_INVALID_SIGNATURE = 4;
+ const ERROR_READ_PAST_END = 5;
+ const ERROR_INVALID_FORMAT = 6;
+
+ private static $mimesByClsid = [
+ // From http://justsolve.archiveteam.org/wiki/Microsoft_Compound_File
+ '00020810-0000-0000-C000-000000000046' => 'application/vnd.ms-excel',
+ '00020820-0000-0000-C000-000000000046' => 'application/vnd.ms-excel',
+ '00020906-0000-0000-C000-000000000046' => 'application/msword',
+ '64818D10-4F9B-11CF-86EA-00AA00B929E8' => 'application/vnd.ms-powerpoint',
+ ];
+
+ /**
+ * Read a file by name
+ *
+ * @param string $fileName The full path to the file
+ * @return array An associative array of information about the file:
+ * - valid: true if the file is valid, false otherwise
+ * - error: An error message in English, should be present if valid=false
+ * - errorCode: One of the self::ERROR_* constants
+ * - mime: The MIME type detected from the directory contents
+ * - mimeFromClsid: The MIME type detected from the CLSID on the root
+ * directory entry
+ */
+ public static function readFile( $fileName ) {
+ $handle = fopen( $fileName, 'r' );
+ if ( $handle === false ) {
+ return [
+ 'valid' => false,
+ 'error' => 'file does not exist',
+ 'errorCode' => self::ERROR_FILE_OPEN
+ ];
+ }
+ return self::readHandle( $handle );
+ }
+
+ /**
+ * Read from an open seekable handle
+ *
+ * @param resource $fileHandle The file handle
+ * @return array An associative array of information about the file:
+ * - valid: true if the file is valid, false otherwise
+ * - error: An error message in English, should be present if valid=false
+ * - errorCode: One of the self::ERROR_* constants
+ * - mime: The MIME type detected from the directory contents
+ * - mimeFromClsid: The MIME type detected from the CLSID on the root
+ * directory entry
+ */
+ public static function readHandle( $fileHandle ) {
+ $reader = new self( $fileHandle );
+ $info = [
+ 'valid' => $reader->valid,
+ 'mime' => $reader->mime,
+ 'mimeFromClsid' => $reader->mimeFromClsid
+ ];
+ if ( $reader->error ) {
+ $info['error'] = $reader->error;
+ $info['errorCode'] = $reader->errorCode;
+ }
+ return $info;
+ }
+
+ private function __construct( $fileHandle ) {
+ $this->file = $fileHandle;
+ try {
+ $this->init();
+ } catch ( RuntimeException $e ) {
+ $this->valid = false;
+ $this->error = $e->getMessage();
+ $this->errorCode = $e->getCode();
+ }
+ }
+
+ private function init() {
+ $this->header = $this->unpackOffset( 0, [
+ 'header_signature' => 8,
+ 'header_clsid' => 16,
+ 'minor_version' => 2,
+ 'major_version' => 2,
+ 'byte_order' => 2,
+ 'sector_shift' => 2,
+ 'mini_sector_shift' => 2,
+ 'reserved' => 6,
+ 'num_dir_sectors' => 4,
+ 'num_fat_sectors' => 4,
+ 'first_dir_sector' => 4,
+ 'transaction_signature_number' => 4,
+ 'mini_stream_cutoff_size' => 4,
+ 'first_mini_fat_sector' => 4,
+ 'num_mini_fat_sectors' => 4,
+ 'first_difat_sector' => 4,
+ 'num_difat_sectors' => 4,
+ 'difat' => 436,
+ ] );
+ if ( $this->header['header_signature'] !== "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" ) {
+ $this->error( 'invalid signature: ' . bin2hex( $this->header['header_signature'] ),
+ self::ERROR_INVALID_SIGNATURE );
+ }
+ $this->sectorLength = 1 << $this->header['sector_shift'];
+ $this->readDifat();
+ $this->readDirectory();
+
+ $this->valid = true;
+ }
+
+ private function sectorOffset( $sectorId ) {
+ return $this->sectorLength * ( $sectorId + 1 );
+ }
+
+ private function decodeClsid( $binaryClsid ) {
+ $parts = unpack( 'Va/vb/vc/C8d', $binaryClsid );
+ return sprintf( "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
+ $parts['a'],
+ $parts['b'],
+ $parts['c'],
+ $parts['d1'],
+ $parts['d2'],
+ $parts['d3'],
+ $parts['d4'],
+ $parts['d5'],
+ $parts['d6'],
+ $parts['d7'],
+ $parts['d8']
+ );
+ }
+
+ private function unpackOffset( $offset, $struct ) {
+ $block = $this->readOffset( $offset, array_sum( $struct ) );
+ return $this->unpack( $block, 0, $struct );
+ }
+
+ private function unpackSector( $sectorNumber, $struct ) {
+ $offset = $this->sectorOffset( $sectorNumber );
+ return $this->unpackOffset( $offset, array_sum( $struct ) );
+ }
+
+ private function unpack( $block, $offset, $struct ) {
+ $data = [];
+ foreach ( $struct as $key => $length ) {
+ if ( $length > 4 ) {
+ $data[$key] = substr( $block, $offset, $length );
+ } else {
+ $data[$key] = $this->bin2dec( $block, $offset, $length );
+ }
+ $offset += $length;
+ }
+ return $data;
+ }
+
+ private function bin2dec( $str, $offset, $length ) {
+ $value = 0;
+ for ( $i = $length - 1; $i >= 0; $i-- ) {
+ $value *= 256;
+ $value += ord( $str[$offset + $i] );
+ }
+ return $value;
+ }
+
+ private function readOffset( $offset, $length ) {
+ $this->fseek( $offset );
+ Wikimedia\suppressWarnings();
+ $block = fread( $this->file, $length );
+ Wikimedia\restoreWarnings();
+ if ( $block === false ) {
+ $this->error( 'error reading from file', self::ERROR_READ );
+ }
+ if ( strlen( $block ) !== $length ) {
+ $this->error( 'unable to read the required number of bytes from the file',
+ self::ERROR_READ_PAST_END );
+ }
+ return $block;
+ }
+
+ private function readSector( $sectorId ) {
+ return $this->readOffset( $this->sectorOffset( $sectorId ), 1 << $this->header['sector_shift'] );
+ }
+
+ private function error( $message, $code ) {
+ throw new RuntimeException( $message, $code );
+ }
+
+ private function fseek( $offset ) {
+ Wikimedia\suppressWarnings();
+ $result = fseek( $this->file, $offset );
+ Wikimedia\restoreWarnings();
+ if ( $result !== 0 ) {
+ $this->error( "unable to seek to offset $offset", self::ERROR_SEEK );
+ }
+ }
+
+ private function readDifat() {
+ $binaryDifat = $this->header['difat'];
+ $nextDifatSector = $this->header['first_difat_sector'];
+ for ( $i = 0; $i < $this->header['num_difat_sectors']; $i++ ) {
+ $block = $this->readSector( $nextDifatSector );
+ $binaryDifat .= substr( $block, 0, $this->sectorLength - 4 );
+ $nextDifatSector = $this->bin2dec( $block, $this->sectorLength - 4, 4 );
+ if ( $nextDifatSector == 0xFFFFFFFE ) {
+ break;
+ }
+ }
+
+ $this->difat = [];
+ for ( $pos = 0; $pos < strlen( $binaryDifat ); $pos += 4 ) {
+ $fatSector = $this->bin2dec( $binaryDifat, $pos, 4 );
+ if ( $fatSector < 0xFFFFFFFC ) {
+ $this->difat[] = $fatSector;
+ } else {
+ break;
+ }
+ }
+ }
+
+ private function getNextSectorIdFromFat( $sectorId ) {
+ $entriesPerSector = intdiv( $this->sectorLength, 4 );
+ $fatSectorId = intdiv( $sectorId, $entriesPerSector );
+ $fatSectorArray = $this->getFatSector( $fatSectorId );
+ return $fatSectorArray[$sectorId % $entriesPerSector];
+ }
+
+ private function getFatSector( $fatSectorId ) {
+ if ( !isset( $this->fat[$fatSectorId] ) ) {
+ $fat = [];
+ if ( !isset( $this->difat[$fatSectorId] ) ) {
+ $this->error( 'FAT sector requested beyond the end of the DIFAT', self::ERROR_INVALID_FORMAT );
+ }
+ $absoluteSectorId = $this->difat[$fatSectorId];
+ $block = $this->readSector( $absoluteSectorId );
+ for ( $pos = 0; $pos < strlen( $block ); $pos += 4 ) {
+ $fat[] = $this->bin2dec( $block, $pos, 4 );
+ }
+ $this->fat[$fatSectorId] = $fat;
+ }
+ return $this->fat[$fatSectorId];
+ }
+
+ private function readDirectory() {
+ $dirSectorId = $this->header['first_dir_sector'];
+ $binaryDir = '';
+ $seenSectorIds = [];
+ while ( $dirSectorId !== 0xFFFFFFFE ) {
+ if ( isset( $seenSectorIds[$dirSectorId] ) ) {
+ $this->error( 'FAT loop detected', self::ERROR_INVALID_FORMAT );
+ }
+ $seenSectorIds[$dirSectorId] = true;
+
+ $binaryDir .= $this->readSector( $dirSectorId );
+ $dirSectorId = $this->getNextSectorIdFromFat( $dirSectorId );
+ }
+
+ $struct = [
+ 'name_raw' => 64,
+ 'name_length' => 2,
+ 'object_type' => 1,
+ 'color' => 1,
+ 'sid_left' => 4,
+ 'sid_right' => 4,
+ 'sid_child' => 4,
+ 'clsid' => 16,
+ 'state_bits' => 4,
+ 'create_time_low' => 4,
+ 'create_time_high' => 4,
+ 'modify_time_low' => 4,
+ 'modify_time_high' => 4,
+ 'first_sector' => 4,
+ 'size_low' => 4,
+ 'size_high' => 4,
+ ];
+ $entryLength = array_sum( $struct );
+
+ for ( $pos = 0; $pos < strlen( $binaryDir ); $pos += $entryLength ) {
+ $entry = $this->unpack( $binaryDir, $pos, $struct );
+
+ // According to [MS-CFB] size_high may contain garbage due to a
+ // bug in a writer, it's best to pretend it is zero
+ $entry['size_high'] = 0;
+
+ $type = $entry['object_type'];
+ if ( $type == self::TYPE_UNALLOCATED ) {
+ continue;
+ }
+
+ $name = iconv( 'UTF-16', 'UTF-8', substr( $entry['name_raw'], 0, $entry['name_length'] - 2 ) );
+
+ $clsid = $this->decodeClsid( $entry['clsid'] );
+ if ( $type == self::TYPE_ROOT && isset( self::$mimesByClsid[$clsid] ) ) {
+ $this->mimeFromClsid = self::$mimesByClsid[$clsid];
+ }
+
+ if ( $name === 'Workbook' ) {
+ $this->mime = 'application/vnd.ms-excel';
+ } elseif ( $name === 'WordDocument' ) {
+ $this->mime = 'application/msword';
+ } elseif ( $name === 'PowerPoint Document' ) {
+ $this->mime = 'application/vnd.ms-powerpoint';
+ }
+ }
+ }
+}
"Seeking $tailLength bytes from EOF failed in " . __METHOD__ );
}
$tail = $tailLength ? fread( $f, $tailLength ) : '';
- fclose( $f );
$this->logger->info( __METHOD__ .
": analyzing head and tail of $file for magic numbers.\n" );
return "image/webp";
}
+ /* Look for MS Compound Binary (OLE) files */
+ if ( strncmp( $head, "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1", 8 ) == 0 ) {
+ $this->logger->info( __METHOD__ . ': recognized MS CFB (OLE) file' );
+ return $this->detectMicrosoftBinaryType( $f );
+ }
+
/**
* Look for PHP. Check for this before HTML/XML... Warning: this is a
* heuristic, and won't match a file with a lot of non-PHP before. It
}
// Check for ZIP variants (before getimagesize)
- if ( strpos( $tail, "PK\x05\x06" ) !== false ) {
- $this->logger->info( __METHOD__ . ": ZIP header present in $file\n" );
- return $this->detectZipType( $head, $tail, $ext );
+ $eocdrPos = strpos( $tail, "PK\x05\x06" );
+ if ( $eocdrPos !== false ) {
+ $this->logger->info( __METHOD__ . ": ZIP signature present in $file\n" );
+ // Check if it really is a ZIP file, make sure the EOCDR is at the end (T40432)
+ $commentLength = unpack( "n", $tail, $eocdrPos + 20 )[0];
+ if ( $eocdrPos + 22 + $commentLength !== strlen( $tail ) ) {
+ $this->logger->info( __METHOD__ . ": ZIP EOCDR not at end. Not a ZIP file." );
+ } else {
+ return $this->detectZipType( $head, $tail, $ext );
+ }
}
// Check for STL (3D) files
return $mime;
}
+ /**
+ * Detect the type of a Microsoft Compound Binary a.k.a. OLE file.
+ * These are old style pre-ODF files such as .doc and .xls
+ *
+ * @param resource $handle An opened seekable file handle
+ * @return string The detected MIME type
+ */
+ function detectMicrosoftBinaryType( $handle ) {
+ $info = MSCompoundFileReader::readHandle( $handle );
+ if ( !$info['valid'] ) {
+ $this->logger->info( __METHOD__ . ': invalid file format' );
+ return 'unknown/unknown';
+ }
+ if ( !$info['mime'] ) {
+ $this->logger->info( __METHOD__ . ": unrecognised document subtype" );
+ return 'unknown/unknown';
+ }
+ return $info['mime'];
+ }
+
/**
* Internal MIME type detection. Detection is done using the fileinfo
* extension if it is available. It can be overriden by callback, which could
. ' 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 );
}
$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 );
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'
* @since 1.33
*/
public function setAttributeForTest( $name, array $value ) {
+ // @codeCoverageIgnoreStart
if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
throw new RuntimeException( __METHOD__ . ' can only be used in tests' );
}
+ // @codeCoverageIgnoreEnd
if ( isset( $this->testAttributes[$name] ) ) {
throw new Exception( "The attribute '$name' has already been overridden" );
}
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}";
+ }
}
*/
public function getRealPath( $srcPath ) {
$repo = RepoGroup::singleton()->getLocalRepo();
- if ( $repo->isVirtualUrl( $srcPath ) ) {
+ if ( FileRepo::isVirtualUrl( $srcPath ) ) {
/** @todo Just make uploads work with storage paths UploadFromStash
* loads files via virtual URLs.
*/
$this->fileKey = $key;
// resolve mwrepo:// urls
- if ( $repo->isVirtualUrl( $path ) ) {
+ if ( FileRepo::isVirtualUrl( $path ) ) {
$path = $repo->resolveVirtualUrl( $path );
} else {
// check if path appears to be sane, no parent traversals,
$this->eocdr['EOCDR size'] = $structSize + $this->eocdr['file comment length'];
if ( $structSize + $this->eocdr['file comment length'] != strlen( $block ) - $sigPos ) {
- $this->error( 'zip-bad', 'trailing bytes after the end of the file comment' );
+ // T40432: MS binary documents frequently embed ZIP files
+ $this->error( 'zip-wrong-format', 'there is a ZIP signature but it is not at ' .
+ 'the end of the file. It could be an OLE file with a ZIP file embedded.' );
}
if ( $this->eocdr['disk'] !== 0
|| $this->eocdr['CD start disk'] !== 0
"pageswithprop-reverse": "Сартаваць у адваротным парадку",
"pageswithprop-sortbyvalue": "Сартаваць паводле значэньня ўласьцівасьці",
"pageswithprop-submit": "Паказаць",
- "pageswithprop-prophidden-long": "доўгае тэкставае значэньне ўласьцівасьці схавана ($1)",
- "pageswithprop-prophidden-binary": "двайковае значэньне ўласьцівасьці схавана ($1)",
+ "pageswithprop-prophidden-long": "доўгае тэкставае значэньне ўласьцівасьці схаванае ($1)",
+ "pageswithprop-prophidden-binary": "двайковае значэньне ўласьцівасьці схаванае ($1)",
"doubleredirects": "Двайныя перанакіраваньні",
"doubleredirectstext": "На гэтай старонцы пададзены сьпіс перанакіраваньняў на іншыя перанакіраваньні. Кожны радок утрымлівае спасылкі на першае і другое перанакіраваньне, а таксама мэтавую старонку другога перанакіраваньня, якая звычайна зьяўляецца «сапраўднай» мэтавай старонкай, куды павіннае спасылацца першае перанакіраваньне.\n<del>Закрэсьленыя</del> элемэнты былі выпраўленыя.",
"double-redirect-fixed-move": "[[$1]] была перанесеная.\nСтаронка аўтаматычна абноўленая і цяпер перанакіроўвае на [[$2]].",
"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": "Изчистване",
"protect_change": "آلإشت کونين",
"unprotect": "هناڌاری زاْ بٱلٛگاْ",
"newpage": "صفحه تازه",
- "talkpagelinktext": "چٱک چناٛ",
+ "talkpagelinktext": "چٱک چنٱ",
"specialpage": "صفحه مخصوص",
- "personaltools": "ابزارهای شخصی",
+ "personaltools": "ٱڤزارٱل شٱسقی",
"talk": "گٱپ",
- "views": "مشاهدات",
- "toolbox": "ٱۋزارا",
+ "views": "دیڌنی یٱل",
+ "toolbox": "ٱۋزارٱل",
"tool-link-userrights": "آلشڌ بنکۊیٱل {{GENDER:$1|مؽنتور}}",
"tool-link-userrights-readonly": "نماونیڌن بنکۊیٱلاٛ {{GENDER:$1|مؽنتور}}",
"tool-link-emailuser": "کل کرڌن ناماٛ ڤ {{GENDER:$1|مؽنتور}}",
"viewhelppage": "دیدن صفحه کمک",
"categorypage": "دیدن صفحه طبقه بندی",
"viewtalkpage": "دیدن بحث ها",
- "otherlanguages": "درزباÙ\86Ù\87اÛ\8c دÛ\8cگر",
- "redirectedfrom": "(تصحیح مجدداز$1)",
+ "otherlanguages": "Ù\85Û\8cÙ\9bÙ\86 زڤÙ\88Ù\86ا دÛ\8cÙ±",
+ "redirectedfrom": "(ڤاگٱردۊنی سی $1)",
"redirectpagesub": "صفحه تصحیح وهدایت مجدد",
"redirectto": "ڤاگردۈنی سی:",
- "lastmodifiedat": "اÛ\8c بÙ\84Ú¯Ù± تازاÙ\9bÛ\8cÛ\8cا Ù\85اÙ\9bÙ\86 $1 Ù\88 Ù\85اÙ\9bÙ\86 $2 Û\8bÛ\8cراÛ\8cشد Û\8bابÛ\8cاÙ\9b.",
+ "lastmodifiedat": "اÛ\8c بٱÙ\84Ú¯Ù± تازاÙ\9bÛ\8cÛ\8cا Ù\85اÙ\9bÙ\86 $1 Ù\88 Ù\85Û\8cÙ\9bÙ\86 $2 Ø¢Ù\84شدکارÛ\8c ڤابÛ\8cÚ\8cاÙ\92.",
"viewcount": "این صفحه قابل دسترسی شده است {{PLURAL:$1|once|$1 times}}.",
"protectedpage": "بٱلگاْ پٱر و پیم ڤابیڌاْ",
"jumpto": "پراٛستن سی:",
- "jumptonavigation": "راندن یا هدایت کردن",
- "jumptosearch": "جستن",
+ "jumptonavigation": "ناڤجۊری",
+ "jumptosearch": "جوستن",
"view-pool-error": "مونٱسفاناٛ سرڤرٱل ایساْ دیلٛ ڤارٱزافاْ هؽڌن\nبورفرٱی زاْ مؽنتورٱل هنؽ تٱقلا اْکونن کاْ ای بٱلٛگاْ ناْ ساٛل کونن.\nلوتفٱن نهاتٱر زاْ تٱقلا دوکرت سی ساٛل کرڌن ای بٱلٛگاْ قٱلیلؽ دٱسنیٱ کونین",
"generic-pool-error": "موتٱسفاْناٛ سرڤرٱل ایساْ دوچار ڤارٱزافی آڤیڌناْ.\nبورفرٱئی زاْ مؽنتوروݩ هنؽ تٱقلا اْکونن کاْ ای بٱلٛگاْ ساٛل کونن.\nلوتفٱن نهاتر زاْ تقلادوکرت سی ساٛل کرڌن ای بٱلٛگاْ قٱلیلؽ دٱس نیٱڌارین",
"pool-timeout": "تٱ هٱرت تؽڤرٱئی سی قولف",
"pool-errorunknown": "خطا نادیار",
"pool-servererror": "سرڤیس باٛنٱتگر کۊگٱ ڤ دٱسرٱس نؽڌا",
"poolcounter-usage-error": "خٱتای اْسفاْڌاْ:$1",
- "aboutsite": "راجوۋ باٛ {{SITENAME}}",
- "aboutpage": "Project:راجڤ ب",
+ "aboutsite": "راجوڤ ب {{SITENAME}}",
+ "aboutpage": "Project:راجوڤ ب",
"copyright": "محتوا باای شماره قابل دسترسیه\n $1.",
"copyrightpage": "{{ns:project}}:کپی رایت",
- "currentevents": "اتÙ\81اÙ\82ات جارÛ\8c",
- "currentevents-url": "Project:اتÙ\81اÙ\82ات جارÛ\8c",
- "disclaimers": "تی پۊشنیڌنیا",
- "disclaimerpage": "Project: تیە پوشنیدٙئنئ کولی",
- "edithelp": "کمک برای اصلاح",
+ "currentevents": "رÙ\88Ø® Ú¤Ù±Ù\86دٱÙ\84 تازاÙ\92",
+ "currentevents-url": "Project:رÙ\88Ø® Ú¤Ù±Ù\86دٱÙ\84 تازاÙ\92",
+ "disclaimers": "تی پۊشنیڌنیٱل",
+ "disclaimerpage": "Project: تی پۊشنیڌنی کولی",
+ "edithelp": "هومیاری سی آلشدکاری",
"helppage-top-gethelp": "هومیاري",
"mainpage": "سرتال",
- "mainpage-description": "صÙ\81ØÙ\87 اصÙ\84Û\8c",
+ "mainpage-description": "سرتاÙ\84",
"policy-url": "Project:خط مشی",
- "portal": "درگاÙ\87 کاربران",
- "portal-url": "Project:درگاÙ\87 کاربران",
- "privacy": "رأدیارکونی رازڤادٙاری",
+ "portal": "سرآسÛ\8aÙ\86اÙ\92 کارÛ\8cارÛ\8aن",
+ "portal-url": "Project:سرآسÛ\8aÙ\86اÙ\92 کارÛ\8cارÛ\8aن",
+ "privacy": "رٱدیارکونی رازڤادٙاری",
"privacypage": "Project:رٱدیارکونی رازڤاڌاری",
"badaccess": "خطا :اجازه بگیر",
"badaccess-group0": "ایسا اجازه انجام کاری که خواستین را ندارین",
"versionrequiredtext": "یه نسخه زه ویکی مدیا($1) نیازمند ه به استفاده زه ای صفحه\nبوین :[[Special:Version|version page]].",
"ok": "خووه",
"pagetitle-view-mainpage": "سرصفحه",
- "retrievedfrom": "دÙ\88ڤارتئ جÙ\88Ù\99ری ز \"$1\"",
+ "retrievedfrom": "دÙ\88ڤارتاÙ\92 جÛ\8aری ز \"$1\"",
"youhavenewmessages": "پیام تاره داری $1 ($2).",
"youhavenewmessagesfromusers": "اؽسا زاْ{{PLURAL:$3|یٱ مؽنتور داٛهر|$3 مؽنتور}} $1 دارین ($2).",
"youhavenewmessagesmanyusers": "اؽسا زاْ بورؽ مؽنتور $1 دارین($2).",
"newmessageslinkplural": "\n{{PLURAL:$1|پاٛخوم نۊ|999=پاٛخومٱل نۊ}}",
"newmessagesdifflinkplural": "$1 {{PLURAL:$1|آلشڌ|آلشڌا}}",
"youhavenewmessagesmulti": "ایسا پیام تازه دارین منه\n$1",
- "editsection": "ۋیرایشد کردن",
+ "editsection": "آلشدکاری کردن",
"editold": "اصلاح",
"viewsourceold": "دیدن منبع",
- "editlink": "ڤیرایئشت",
- "viewsourcelink": "سئیل سرچشمه کنین",
- "editsectionhint": "ۋیرایشد بٱرجا: $1",
- "toc": "محتواها",
+ "editlink": "آلشدکاری کردن",
+ "viewsourcelink": "سئیل سرچشماْ کونین",
+ "editsectionhint": "آلشدکاری بٱرجا: $1",
+ "toc": "مینۊناْیٱل",
"showtoc": "نمایش",
"hidetoc": "قایم",
"collapsible-collapse": "جأم كردن",
"feed-invalid": "اشتراک زه راه تایپ باطله",
"feed-unavailable": "خوراکٱل هوڤال خوݩ ڤاْ دٱسرٱس نؽڌا",
"site-rss-feed": "خبرخو RSS سی $1",
- "site-atom-feed": "حأڤال خوٙنئ Atom سی $1",
+ "site-atom-feed": "هٱڤال خۊنی Atom سی $1",
"page-rss-feed": "خبرخو RSS سی «$1»",
- "page-atom-feed": "هأڤال خۈن Atom سي $1",
- "red-link-title": "$1 (Ú\86Ù\88Ù\86Ù\88 بÙ\84گاÙ\9bیی نیڌس)",
+ "page-atom-feed": "هٱڤال خۊن Atom سی $1",
+ "red-link-title": "$1 (Ú\86Ù\88Ù\86Ù\88 بÙ\84گاÙ\92یی نیڌس)",
"sort-descending": "ڤدین یٱک کٱم آڤیڌن",
- "nstab-main": "بÙ\84Ú¯Ù\87",
+ "nstab-main": "بٱÙ\84Ú¯Ù±",
"nstab-user": "صفحه کاربر",
"nstab-media": "بلگأ ڤارسگأري",
- "nstab-special": "بألگه ڤیجه",
+ "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": "ای بٱلٛگاْ سی نهاگری راْ آلشڌکاری یا جومجیل دهرؽ پلڌاری آڤیڌاْ",
"accountcreated": "هساڤ راسد ڤابي",
"createaccount-title": "هساڤ سي {{SITENAME}} راسد ڤابي",
"loginlanguagelabel": "زۈن:$1",
- "pt-login": "ڤامین اوڤیڌن",
+ "pt-login": "ڤامین ٱڤوڌن",
"pt-login-button": "ڤامین اوڤیڌن",
- "pt-createaccount": "راسد کردن هساڤ کارياري",
+ "pt-createaccount": "راسد کردن هساڤ کاریاری",
"pt-userlogout": "ز سامۈنإ درأڤوڌن",
"changepassword": "آلشد کردن رازينإ گوڤأرتن",
"oldpassword": "رازينإ گوڤأرتن ديندایي:",
"resettokens-watchlist-token": "شناسانٱنڌاٛ خوراک ڤباٛی [[Special:Watchlist|آلشڌ بٱلٛگیٱلؽ کاْ دیناگری اْکونین]] (ٱتم/آراْساْس)",
"resettokens-done": "دوکرتشناسی شناسانٱنڌاٛیٱل",
"resettokens-resetbutton": "دوکرتشناسی شناسانٱنڌاٛیٱل دزاْ آڤیڌاْ",
- "bold_sample": "متن گپ نما",
- "bold_tip": "متن گپ نما",
- "italic_sample": "Ù\85تÙ\86 شکستÙ\87",
- "italic_tip": "Ù\85تÙ\86 شکستÙ\87",
- "link_sample": "عÙ\86Ù\88اÙ\86 Ù\84Û\8cÙ\86Ú©",
- "link_tip": "Ù\84Û\8cÙ\86Ú© داخلی",
- "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": "فایل محاط وابید",
- "media_tip": "لینک فایل",
- "sig_tip": "اÙ\85ضاÛ\8c اÛ\8cسا Ù\88 برÚ\86سب زÙ\85اÙ\86",
- "hr_tip": "خط افقی (کم استفاده کنین)",
- "summary": "خلاصه:",
+ "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": "داسÛ\8aÙ\86 Ù\87Ù\88Ù\85پاÙ\9bÛ\8cÚ¤Ù±Ù\86د",
+ "link_tip": "Ù\87Ù\88Ù\85پاÙ\9bÛ\8cÚ¤Ù±Ù\86د داخلی",
+ "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": "اÙ\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",
"copyrightwarning": "لطفاً دقت کنین که درنظر گریده ابوه که همه شراکتهای ایسا {{SITENAME}} تحت «$2» منتشر ابون ).\n\n\n(سی دیدن جزئیات بیشتر به $1 برین\n\nایر نه خوین نوشتههاتو بیرحمانه اصلاح بوه و به دلخواه ارسال بوه، ایچو نفرستن.<br />\nدرضمن ایسادارین به ایما قول ادین که خودتو یونه نوشتین یا هونه زه یک منبع آزاد با مالکیت عمومی یا مثل هو ورداشتین. '''کارهای دارای کارهای دارای حق کپی رایت را بیاجازه نفرستین!'''',",
"templatesused": "{{PLURAL:$1|چوٙأ|چوٙأیل}} ب کار گرهڌأ ڤابيڌإ مإن اي بألگأ:",
"templatesusedpreview": "قالڤٱل یا اولگۊیٱل ڤاْ کار رٱئڌاْ مؽن ای نهانماو",
- "template-protected": "(تحت حمایت)",
- "template-semiprotected": "(نیمه حمایت وابیده)",
+ "template-protected": "(پٱر و پیم ڤابیڌٱ)",
+ "template-semiprotected": "(نسم نیماْ پٱر و پیم ڤابیڌاْ)",
"hiddencategories": "اي بلگأ یکي ز أندوما {{PLURAL:$1|1 hidden category|$1 hidden categories}} إ:",
"nocreatetext": "{{SITENAME}}قابلیت درست کردن صفحات تازه را محدود کرده. ترین برگردین و صفحه موجود را اصلاح کنین یا اینکه [[Special:UserLogin|به سیستم داخل بوین یا حساب کاربری درست کنین]].",
"permissionserrors": "پٱلاْ:اْجازاْ ڤگرا",
"viewpagelogs": "نشودادن نمایه ها سی ای صفحه",
"currentrev": "نسخه جاری",
"currentrev-asof": "آخرين ڤانيأري جۈر $1",
- "revisionasof": "اصلاح $1",
+ "revisionasof": "ڤانیٱری چی $1",
"revision-info": "نوسقإ ڤانيأري ڤابيڌإ جۈر $1 ڤا $2",
- "previousrevision": "← اصلاح قبلی",
+ "previousrevision": "← ڤانیٱری دیندایی",
"nextrevision": "نسخه بعدی →",
"currentrevisionlink": "نسخه جاری",
- "cur": "فعلی",
+ "cur": "ایسنی",
"next": "نيایي",
- "last": "قبلی",
+ "last": "دیندایی",
"page_first": "اولین",
"page_last": "آخری",
"histlegend": "انتخاب متفاوت: علامت بنین رو رادیو جعبه ها زه آن نسخه ها سی مقایسه وامتیاز دادن ویا داخل تکمه های زیر سی مسابقه بوین .<br />\n'شرح: (فعلی) = تفاوت با نسخه جاری\n(قبلی) = تفاوت با نسخه قبلی، جز = ویرایش جزئی',",
"mergelog": "سیائاْ ؤریٱک",
"history-title": "دڤارتإ دیئن ڤيرگار $1",
"difference-title": "فرخ مإنجقا ڤانإیريا \"$1\"",
- "lineno": "سطر $1:",
+ "lineno": "خٱت $1:",
"compareselectedversions": "مقایسه نسخههای انتخاب وابیده",
- "editundo": "Ù\84غÙ\88 اصÙ\84Ø§Ø Ø¢Ø®Ø±",
+ "editundo": "Ù±Ù\86جÙ\88Ù\85Ø´Û\8cÚ¤ کردÙ\86",
"diff-multi-sameuser": "({{PLURAL:$1|یٱ دۊناٛ نوسقاٛ مؽنجخایی|$1 نوسقاٛیٱل مؽنجخایی}} ب دٱسد{{PLURAL:$2|کاریاری ديٱ|$2 کاريارا}} نشۊن دیاری نٱکرداْ)",
- "searchresults": "Ù\86تÙ\8aجأ Ø¢ Ù¾Û\8c جÛ\88رÙ\8a سÙ\8a",
- "searchresults-title": "Ù\86تÙ\8aجإ Ø¢ Ù¾Û\8c جÙ\88رÙ\8a سÙ\8a \"$1\"",
- "prevn": "قبلی {{PLURAL:$1|$1}}",
- "nextn": "بعدی {{PLURAL:$1|$1}}",
+ "searchresults": "Ù\86تÙ\8aجاÙ\92Û\8cÙ±Ù\84 پاÙ\9bÛ\8c جÛ\8aرÛ\8c",
+ "searchresults-title": "Ù\86تÙ\8aجاÙ\92Û\8cÙ±Ù\84 پاÙ\9bÛ\8c جÛ\8aرÛ\8c سÛ\8c \"$1\"",
+ "prevn": "دیندایی {{PLURAL:$1|$1}}",
+ "nextn": "نیایی {{PLURAL:$1|$1}}",
"nextn-title": "نيایي $1 {{PLURAL:$1|نتيجه|نتيجإآ}}",
- "shown-title": "Ù\86إشÛ\88Ù\86 دائÙ\86 $1 {{PLURAL:$1|Ù\86تÙ\8aجأ|Ù\86تÙ\8aجإ Ø¢}} سÙ\8a Ù\87ر بأÙ\84گأ",
- "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
+ "shown-title": "Ù\86Ø´Û\8aÙ\86 دائÙ\86 $1 {{PLURAL:$1|Ù\86تÛ\8cجاÙ\92|Ù\86تÛ\8cجاÙ\92Û\8cÙ±Ù\84}} سÛ\8c Ù\87ر بٱÙ\84Ú¯Ù±",
+ "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Ø£ بگرد.",
- "search-result-size": "$1 ({{PLURAL:$2|1 ڤاجه یل|$2 ڤاجه یل}})",
+ "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": "تغÛ\8cÛ\8cرات اخÛ\8cر",
- "recentchanges-legend": "گزينإ آ آلشدا ايسإني",
+ "recentchanges": "Ø¢Ù\84شدکارÛ\8cا اÛ\8cسÙ\86Û\8c",
+ "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 رۊز ٱخیر",
- "diff": "تفاوت",
- "hist": "گزارش",
+ "rcshowhidemine-hide": "Ù\82اÙ\85 کردن",
+ "rclinks": "دیاری کردن دینائی $1 آلشڌ مؽن $2 رۊز دیندایی",
+ "diff": "فٱرخ",
+ "hist": "گوزارشت",
"hide": "قایم شدن",
"show": "نشودادن",
- "minoreditletter": "رز",
- "newpageletter": "تا",
- "boteditletter": "ر",
- "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتا}} بئ نیا آلئشتکاری",
- "recentchangeslinked": "تغÛ\8cÛ\8cرات Ù\85رتبط",
+ "minoreditletter": "م",
+ "newpageletter": "ن",
+ "boteditletter": "ب",
+ "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتا}} نیا آلشدکاری",
+ "recentchangeslinked": "Ø¢Ù\84شدکارÛ\8cÙ±Ù\84 تاÙ\92 Û\8cÙ±Ú©",
"recentchangeslinked-feed": "تغییرات مرتبط",
- "recentchangeslinked-toolbox": "تغÛ\8cÛ\8cرات Ù\85رتبط",
- "recentchangeslinked-title": "تغÛ\8cÛ\8cرÙ\87اÛ\8c Ù\85رتبط با $1",
+ "recentchangeslinked-toolbox": "Ø¢Ù\84شدکارÛ\8cÙ±Ù\84 تاÙ\92 Û\8cÙ±Ú©",
+ "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",
- "upload": "آپÙ\84Ù\88د Ù\81اÛ\8cÙ\84",
+ "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": "سÙ\88ڤار کردÙ\86 جاÙ\86Û\8cا",
"uploadbtn": "آپلود فایل",
"uploadlogpage": "نمایه آپلود",
- "filedesc": "چكستأ",
+ "filedesc": "چكستٱ",
"license": "ماٛن حال و بال لیسانس دار ۋابیاٛن",
"license-header": "ب حال وبال ليسانس دار ڤابيڌن",
"imgfile": "جانيا",
"listfiles": "لیست فایل",
- "file-anchor-link": "فایل",
- "filehist": "گزارش تارÛ\8cØ®Û\8c Ù\81اÛ\8cÙ\84",
- "filehist-help": "رو تاریخها کلیک کنید تا نسخه مرتبط را ببینین.",
+ "file-anchor-link": "جانیا",
+ "filehist": "Ú¤Û\8cرگار جاÙ\86Û\8cا",
+ "filehist-help": "ری ڤیرگار بپۊرنین تا نوسقاْیی کاْ خاین باْنیٱرین",
"filehist-revert": "لرنیئن",
- "filehist-current": "جارÛ\8c",
- "filehist-datetime": "تاریخ/زمان",
- "filehist-thumb": "عسگ کۈچير وابيه",
- "filehist-thumbtext": "Ù\83Û\88Ú\86Ù\8aر کردÙ\86 سÛ\8c Ù\86Ù\88سÙ\82Ø¥ $1",
+ "filehist-current": "تازاÙ\92 باڤ",
+ "filehist-datetime": "گات/مجال",
+ "filehist-thumb": "ٱسگ بٱن کاْلکی",
+ "filehist-thumbtext": "Ù\83Û\8aÚ\86Û\8cر کردÙ\86 سÛ\8c Ù\86Ù\88سÙ\82اÙ\92 $1",
"filehist-nothumb": "نڤیڌن بٱن کلکی",
- "filehist-user": "کاربر",
- "filehist-dimensions": "ابعاد",
+ "filehist-user": "کاریار",
+ "filehist-dimensions": "ڤٱرگٱیٱل",
"filehist-filesize": "اندازه فایل",
- "filehist-comment": "توضیح",
- "imagelinks": "به کار گرهڌن جانيا",
- "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکهای صفحه|$1 لینک صفحات}} به ای فایل:",
+ "filehist-comment": "ڤیر و باڤٱر",
+ "imagelinks": "ڤا کار ڤٱندن جانیا",
+ "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": "قالبها یا الگوهای استفاده نوابیده",
- "randompage": "صÙ\81ØÙ\87 اتÙ\81اÙ\82ی",
+ "randompage": "بٱÙ\84گاÙ\92 شاÙ\85سٱکی",
"randomredirect": "تغییر مسیر اتفاقی",
"statistics": "آمار",
"doubleredirects": "تغییر مسیر دوبله",
"deadendpages": "صفحات بن بست ولاینحل",
"protectedpages": "صفحات حفاظت وحمایت وابیده",
"listusers": "لیست کاربر",
- "newpages": "صÙ\81Øات تازÙ\87",
+ "newpages": "بٱÙ\84گاÙ\92Û\8cÙ±Ù\84 Ù\86Û\8f",
"ancientpages": "کهنه ترین صفحات",
"move": "جابجا کردن",
"movethispage": "جابجایی ای صفحه",
"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": "اي جأڤإ نأ ڤارسي کونين اي جأڤأ د ڤأرگرهڌإ چأک چنإ آ داسۈن نوم ڤأرگأ شريکي و نوم ڤأرگأ گولإڤورچينإ.",
- "blanknamespace": "(اصلی)",
- "contributions": "{{GENDER:$1|کاریار}} هومیاریا",
+ "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-title": "هومیاری كاریارآ سی $1",
"mycontris": "هومياریا",
"anoncontribs": "هومياریا",
"sp-contributions-search": "سی هومیاریا پاٛی جۊری ۋابۊ",
"sp-contributions-username": "نوم ناٛشۊن آی پی یا نوم کاریاری",
"sp-contributions-submit": "پاٛی جۊری",
- "whatlinkshere": "لینک های ای صفحه",
+ "whatlinkshere": "کوم هومپاٛیندٱل ایچونن",
"whatlinkshere-title": "صفحات آن لینک به \"$1\"",
"whatlinkshere-page": "بألگە",
"linkshere": "لینک صفحات ذیل الذکر به '''$2''':",
"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": "ھأیاری",
+ "contribslink": "هٱیاری",
"blocklogpage": "نمایه _ بستهوابیدهها",
"blocklogentry": "بسته وابید [[$1]] با سپری وابیدن وقت زه $2 $3",
"reblock-logentry": "ساموکارٱل بورسناْ دٱسرٱسی [[$1]]آلشڌ ڤاْ تٱهاْ بورسناْ دٱسرٱسی مؽن $2 $3",
"revertmove": "واگردانی",
"export": "صفحات صادره",
"allmessages": "پیامهای سیستم",
- "thumbnail-more": "گپ کردن",
+ "thumbnail-more": "گٱپ کردÙ\86",
"thumbnail_error": "خطا سی درست کردن ناخن دانه: $1",
"importlogpage": "داخل نمایه کردن",
"tooltip-pt-userpage": "{{GENDER:|بألگأ کارياريتۈن}} بألگأ",
"tooltip-pt-preferences": "{{GENDER:|ايسا}} أصل کاريا",
"tooltip-pt-watchlist": "لیست صفحههایی که ایسا تغییرات هونو دنبال اکنین",
"tooltip-pt-mycontris": "یأ نومگأ ز هومياري {{GENDER:|ايسا}}",
- "tooltip-pt-login": "تÙ\88صÛ\8cÙ\87 ابÙ\88Ù\87 Ú©Ù\87 بÙ\87 سÛ\8cستÙ\85 داخÙ\84 بÙ\88Û\8cÙ\86 اÙ\85ا اجبارÛ\8c Ù\86Ù\87.",
+ "tooltip-pt-login": "اÛ\8cÙ\85ا اÙ\9bÚ¯Û\8aÛ\8cÙ\85 کاÙ\92 رÛ\89Û\8cÙ\86 ڤاÙ\85Û\8cÙ\86 ساÙ\85Û\8aÙ\86Ú¯Ù±: ڤاÙ\92Ù\84Û\8c Ú\86Ù\88Ù\86Ù\88 کارÛ\8c اÙ\9bÚ\98بارÛ\8c Ù\86Û\8c",
"tooltip-pt-logout": "رهدن زه سیستم",
- "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-history": "دوواره ديئن ای بلگه",
+ "tooltip-pt-createaccount": "ايسا پوشت گٱرم ڤابیڌیناْ کاْ یٱ هساڤ راسد کونین و بیائین ڤامین. ڤاْلی چونو کاری اٛژباری نی.",
+ "tooltip-ca-talk": "چٱک چناْ سی مینۊناْ بٱلگٱ",
+ "tooltip-ca-edit": "ای بٱلگاْ نٱ آلشدکاری کو",
+ "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-ca-move": "جابجاکردن ای صفحه",
- "tooltip-ca-watch": "اضاف کردن ای صفحه به لیست پیگیریهاتو",
+ "tooltip-ca-watch": "اْزاف کردن ای بٱلگٱ ب سئیل بٱرگ خوتۊن",
"tooltip-ca-unwatch": "حذف ای صفحه زه لیست پیگیریهای ایسا",
- "tooltip-search": "جستن {{SITENAME}}",
- "tooltip-search-go": "رۉ مإن بألگإیي کإ یأ نوم راستکي داشدإ بۈ.",
- "tooltip-search-fulltext": "بألگأ آنأ سي چونو نإڤشدإیي پإی جۈري کو",
- "tooltip-p-logo": "بإنیرين بإ سرآسۈنأ",
- "tooltip-n-mainpage": "دÛ\8cدÙ\86 صÙ\81ØÙ\87 اصÙ\84Û\8c",
- "tooltip-n-mainpage-description": "بإنیرين به سرآسونه",
- "tooltip-n-portal": "دربارÙ\87 اÛ\8c پرÙ\88Ú\98Ù\87 Ú\86Ù\87 ترÛ\8cÙ\86 Ú©Ù\86Û\8cÙ\86 Ù\88 Ú©Û\8cÙ\87 ترÛ\8cÙ\86 Ø¢Ù\86 جÛ\8cزÙ\87ا رÙ\88 Ù¾Û\8cدا Ú©Ù\86ین",
- "tooltip-n-currentevents": "پیداکردن اطلاعات زمینه یاسابقه اطلاعات در اتفاقات جاری",
- "tooltip-n-recentchanges": "فهرست تغییرات آخری درویکی",
- "tooltip-n-randompage": "لود کردن یه صفحه بطور اتفاقی",
- "tooltip-n-help": "محلی برای کشف کردن",
- "tooltip-t-whatlinkshere": "فهرست همه صفحات ویکی که ایچو لینک دارن",
- "tooltip-t-recentchangeslinked": "تغÛ\8cÛ\8cرات آخرÛ\8c درصÙ\81ØاتÛ\8c Ú©Ù\87 Ù\84Û\8cÙ\86Ú© شدÙ\87 اÙ\86د بÙ\87 اÛ\8c صÙ\81ØÙ\87",
+ "tooltip-search": "جوستن {{SITENAME}}",
+ "tooltip-search-go": "رۉ میٛن بٱلگاْیٱلی کاْ نوم راستٱکی داشتاْ بۊن",
+ "tooltip-search-fulltext": "بٱلگاْیٱل نٱ سی چونو نڤشداْیٱلی پاٛی جۊری کو",
+ "tooltip-p-logo": "بنیٱرین ب سرآسۊنٱ",
+ "tooltip-n-mainpage": "بÙ\86Û\8cٱرÛ\8cÙ\86 ب سرآسÛ\8aÙ\86Ù±",
+ "tooltip-n-mainpage-description": "بنیٱرین ب سرآسۊنٱ",
+ "tooltip-n-portal": "سÛ\8c Ú\86Ù\88Ù\86Ù\88 Ù¾Ù\88رÙ\88جاÙ\92Û\8cÛ\8cØ\8c اÛ\8cسا ڤا Ú\86 Ú©Ù\88Ù\86Û\8cÙ\86Ø\8c Û\8cا ز Ú©Ù\88جاÙ\92 Ú\86Ù\88Ù\86Ù\88 Ú\86Û\8cاÛ\8cÛ\8c Ù\86اÙ\92 بجÛ\8aرین",
+ "tooltip-n-currentevents": "جوستن دۊنسمٱندیٱل زمینٱ سی روخڤٱندا جاری",
+ "tooltip-n-recentchanges": "یٱ نومگٱ ز آلشدکاریٱل ایسنی میٛن ڤیکی",
+ "tooltip-n-randompage": "سوڤارکرد شامسٱکی بٱلگٱ",
+ "tooltip-n-help": "جاگٱیی سی دۊنستن",
+ "tooltip-t-whatlinkshere": "یو نومگٱ تٱموم بٱلگاْیٱلی ڤیکی پڌیائن کاْ ایچو هومپاٛیڤٱند دارن",
+ "tooltip-t-recentchangeslinked": "Ø¢Ù\84شدکارÛ\8cÙ±Ù\84 تازاÙ\92باڤ Ù\85Û\8cÙ\9bÙ\86 بٱÙ\84گاÙ\92Û\8cÙ±Ù\84Û\8c کاÙ\92 Ù\87Ù\88Ù\85پاÙ\9bÛ\8cÚ¤Ù±Ù\86د ڤابÛ\8cÚ\8cÙ\86اÙ\92 ب اÛ\8c بٱÙ\84Ú¯Ù±",
"tooltip-feed-rss": "تغذیه آراس اس برای ای صفحه",
- "tooltip-feed-atom": "تغذیه کوچیک ترین جزء ای صفحه",
+ "tooltip-feed-atom": "هٱڤال خۊن ٱتومی سی ای بٱلگاْ",
"tooltip-t-contributions": "ديإن نومگأآیي کإ {{GENDER:$1|اي کاریار}} هومياريسۈن کردإ",
"tooltip-t-emailuser": "فرشناڌن ب ٱنجوماناماْ {{GENDER:$1|ای کاریار}}",
- "tooltip-t-upload": "آپÙ\84Ù\88دکردÙ\86 Ù\81اÛ\8cÙ\84Ù\87ا",
- "tooltip-t-specialpages": "فهرست همه صفحات مخصوص",
- "tooltip-t-print": "نسخه فابل پرینت ای صفحه",
- "tooltip-t-permalink": "Ù\84Û\8cÙ\86Ú© داÛ\8cÙ\85Û\8c بÙ\87 اÛ\8c Ù\86سخÙ\87 از صÙ\81ØÙ\87",
- "tooltip-ca-nstab-main": "دیدن آن صفحه محتوا",
+ "tooltip-t-upload": "سÙ\88ڤار کردÙ\86 جاÙ\86Û\8cاÛ\8cÙ±Ù\84",
+ "tooltip-t-specialpages": "یٱ نومگٱ ز بٱلگاْیٱل ڤیجٱ",
+ "tooltip-t-print": "نوسقاْ پرینت گرهڌنی سی ای بٱلگٱ",
+ "tooltip-t-permalink": "Ù\87Ù\88Ù\85پاÙ\9bÛ\8cÚ¤Ù±Ù\86د داÛ\8cÙ\88Ù\85Û\8c سÛ\8c ڤاÙ\86Û\8cٱرÛ\8c بٱÙ\84Ú¯Ù±",
+ "tooltip-ca-nstab-main": "دیڌن مینۊنٱ بٱلگٱ",
"tooltip-ca-nstab-user": "دیدن صفحه کاربر",
"tooltip-ca-nstab-media": "دیدن صفحه مدیا",
- "tooltip-ca-nstab-special": "اي بلگه بلگه ویجه و ايسا نترين هونه ڤیرایشت کونین",
+ "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": "ڤیرایشت ڤیرگار",
"pageinfo-magic-words": "{{PLURAL:$1|قساْ|قساْ}} جادۊیی ($1)",
"pageinfo-hidden-categories": "{{PLURAL:$1| بنکۊ|بنکۊ}} بؽ دیار ( $1 )",
"pageinfo-templates": "{{PLURAL:$1|اولگۊیٱل|اولگۊیٱل}} اْسفاڌاْ آڤیڌاْ ($1)",
- "pageinfo-toolboxlink": "دونسمندیا بلگه",
+ "pageinfo-toolboxlink": "ڌونائیٱل بٱلٛگاْ",
"pageinfo-contentpage": "باٛئنٱت آڤیڌاْ ڤاْ اوڌڤان بٱلٛگاْ موهتٱڤائی",
"pageinfo-contentpage-yes": "هٱراٛ",
"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*جی پی اس گپ حالت\n*جی پی اس همه حالت",
- "namespacesall": "Ù\87Ù\85Ù\87",
+ "metadata-fields": "رشناْیٱل گٱپ دۊنسمٱندیٱلی کاْ میٛن ای پاٛیغوم نومگٱ کاری ڤابیڌاْ ناْ ز ڤٱر گرهڌاْ بٱلگاْ ٱسگی کاْ گات ڤٱختی کاْ جٱدڤٱل گٱپ دۊنسمٱندیٱل ڤا اْبۊن دیاری کونن.\n*راست کو\n*مودل\n*مجال گات ٱسل\n*گات آشگار\n*اْف اْن شومارٱ\n*ایزو نرخ میٛن سورٱت\n*فوکالنس\n*هونٱرمٱند\n*کوپی رایت\n*هال و بال جی پی اْس \n*جی پی اْس گٱپ\n*جی پی اْس هٱماْ جۊرٱ",
+ "namespacesall": "Ù\87Ù±Ù\85Ù±",
"monthsall": "همه ماهها",
"semicolon-separator": "؛ ",
"imgmultipagenext": "بٱلٛگاْ دینائی",
"redirect-user": "نوم دیارکون کاریار:",
"redirect-page": "دیارکار بٱلٛگاْ",
"redirect-file": "نوم جانیا",
- "specialpages": "بÙ\84گاÙ\9b Ø¢ Û\8bیجٱ",
- "tag-filter": "[[Special:سٱرڌیسا|سٱرديس]]فیلتر:",
+ "specialpages": "بٱÙ\84گاÙ\92Û\8cÙ±Ù\84 Ú¤یجٱ",
+ "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}}",
+ "searchsuggest-search": "جوستن {{SITENAME}}",
"duration-days": "$1 رۊز",
"randomrootpage": "بٱلٛگاْ بونی تٱساڌفی"
}
"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",
"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": "茲頁無修改歷史。",
"prefs-help-email-required": "Электронан поштан адрес яздан деза.",
"prefs-info": "Коьрта хаам",
"prefs-i18n": "Кхин параметраш",
- "prefs-signature": "КуьгтаӀор",
+ "prefs-signature": "Куьг",
"prefs-dateformat": "Терахьан формат",
"prefs-timeoffset": "Хенан гӀирс",
"prefs-advancedediting": "Юкъара параметреш",
"content-json-empty-object": "Tomt objekt",
"content-json-empty-array": "Tomt matrix",
"deprecated-self-close-category": "Sider, der bruger ugyldige, selvlukkende HTML-tags",
- "deprecated-self-close-category-desc": "Siden bruger ugyldige selvlukkende HTML tags, som <code><b/></code> eller <code><span/></code>. De vil snart blive ændret i overensstemmelse med HTML5 specifikationen, så de ikke kan bruges i wikitext.",
+ "deprecated-self-close-category-desc": "Siden bruger ugyldige selvlukkende HTML tags, som <code><b/></code> eller <code><span/></code>. De vil snart blive ændret i overensstemmelse med HTML5-specifikationen, så de ikke kan bruges i wikitext.",
"duplicate-args-category": "Sider der bruger samme argument mere end en gang i en skabelon",
"duplicate-args-category-desc": "Siden indeholder en skabelon hvor et argument er brugt mere end en gang, som <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> eller <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
"expensive-parserfunction-warning": "Advarsel: Der er for mange beregningstunge oversætter-funktionskald på denne side.\n\nDer bør være færre end {{PLURAL:$2|$2 kald}}, lige nu er der {{PLURAL:$1|$1 kald}}.",
"statistics-header-edits": "सम्पादनहरूको तथ्याङ्क",
"statistics-files": "अपलोड गर्याका फाइलहरू",
"statistics-users": "दर्ता भयाऽ प्रयोगकर्ताअन",
- "statistics-users-active": "सà¤\95à¥\8dरिय पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82",
- "statistics-users-active-desc": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82 à¤\9cà¥\8b {{PLURAL:$1|बितà¥\87à¤\95à¥\8b à¤\8fà¤\95 दिन|बितà¥\87à¤\95ा $1 दिनहरà¥\82}} बठà¥\87 सà¤\95à¥\8dरिय छन्",
+ "statistics-users-active": "सà¤\95à¥\8dरिय पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\85न",
+ "statistics-users-active-desc": "पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\85न à¤\9cà¥\88 लà¥\87 à¤\97या {{PLURAL:$1|दिन|$1 दिन}} बठà¥\87à¤\87 à¤\95à¥\8dरियाà¤\95लापà¤\85न à¤\97रिराà¤\87छन्",
"nbytes": "$1 {{PLURAL:$1|बाइट|बाइटहरू}}",
"nlinks": "$1 {{PLURAL:$1|लिंक|लिंकहरू}}",
"nmembers": "$1 {{PLURAL:$1|सदस्य|सदस्यहरू}}",
"allpagesprefix": "यी सुरुका अक्षरसहितका पानाहरू हेद्या:",
"categories": "श्रेणीहरू",
"listusers-noresult": "प्रयोगकर्ता भेटियानन्",
- "activeusers": "सà¤\95à¥\8dरिय पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताहरà¥\82à¤\95à¥\8b सूची",
+ "activeusers": "सà¤\95à¥\8dरिय पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dताà¤\85न à¤\95ि सूची",
"activeusers-intro": "यो सूची ती प्रयोगकर्तानको हो जनले विगत $1 {{PLURAL:$1|दिन| दिन}}मी गतिविधि देखायाकाछन्।",
"activeusers-count": "विगत {{PLURAL:$3|दिनमी|$3 दिनहरूमी}} $1 {{PLURAL:$1|सम्पादन गरियो|सम्पादनहरू गरिया}}",
"activeusers-from": "यहाँबठे सुरु हुन्या प्रयोगकर्ताहरू धेकाओ:",
"tags-create-warnings-below": "क्या तमी यो ट्याग बनाउन्या काम जारी राख्न चाहन्छौ ?",
"tags-delete-explanation-initial": "तमी ट्याग \"$1\" लाई डाटावेसबठे हटाउँन लाग्याछौ ।",
"tags-delete-explanation-warning": "यो क्रिया <strong>अपरिवर्तनीय</strong> हो र <strong>त्यसलाई परिवर्तन गर्न नाईसकिंदो</strong>, डेटाबेस प्रवन्धक पनि यैलाई केहि गद्द सक्दाइनन् । विश्वासपूर्ण रूपले तम तय गर कि तमी यै ट्यागलाई हटाउन चाहन्छौ ।",
- "tags-activate-question": "तमी ट्याग \"$1\"लाई सक्रिय गद्द लाग्याछौ ।",
+ "tags-activate-question": "तमी ट्याग \"$1\" लाइ सक्रिय गद्द लाग्याछौ।",
"tags-deactivate-question": "तमी ट्याग \"$1\" लाई निस्क्रिय गद्द लाग्याछौ ।",
"compare-invalid-title": "तमीले खुलायाको शिर्षक अमान्य छ ।",
"compare-title-not-exists": "तमीले खुलायाको शिर्षक उपलब्ध छैन ।",
"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}}",
"isredirect": "página redirigida",
"istemplate": "transclusión",
"isimage": "enlace de archivo",
- "whatlinkshere-prev": "{{PLURAL:$1|previa|previas $1}}",
- "whatlinkshere-next": "{{PLURAL:$1|siguiente|siguientes $1}}",
+ "whatlinkshere-prev": "{{PLURAL:$1|anterior|$1 anteriores}}",
+ "whatlinkshere-next": "{{PLURAL:$1|siguiente|$1 siguientes}}",
"whatlinkshere-links": "← enlaces",
"whatlinkshere-hideredirs": "$1 redirecciones",
"whatlinkshere-hidetrans": "$1 transclusiones",
"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",
"Kyykaarme",
"Surjection",
"OneMember",
- "Valtlait"
+ "Valtlait",
+ "Laurianttila"
]
},
"tog-underline": "Linkkien alleviivaus:",
- "tog-hideminor": "Piilota pienet muutokset tuoreet muutokset -listasta",
- "tog-hidepatrolled": "Piilota tarkastetut muutokset tuoreet muutokset -listasta",
+ "tog-hideminor": "Piilota pienet muutokset \"tuoreet muutokset\" -listasta",
+ "tog-hidepatrolled": "Piilota tarkastetut muutokset \"tuoreet muutokset\" -listasta",
"tog-newpageshidepatrolled": "Piilota tarkastetut sivut uusien sivujen listalta",
"tog-hidecategorization": "Piilota sivujen luokittelu",
"tog-extendwatchlist": "Laajenna tarkkailulista näyttämään kaikki tehdyt muutokset, eikä vain viimeisimmät",
"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ä.",
"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",
"passwordreset-domain": "תחום:",
"passwordreset-email": "כתובת דוא\"ל:",
"passwordreset-emailtitle": "פרטי חשבון ב{{grammar:תחילית|{{SITENAME}}}}",
- "passwordreset-emailtext-ip": "מישהו (ככל הנראה אתם, מכתובת ה־IP מספר $1) ביקש איפוס של\nהסיסמה שלכם ב{{grammar:תחילית|{{SITENAME}}}}‏ ($4). {{PLURAL:$3|חשבון המשתמש הבא שייך|חשבונות המשתמש הבאים שייכים}}\nלכתובת הדואר האלקטרוני הזאת:\n\n$2\n\n{{PLURAL:$3|סיסמה זמנית זו תפקע|סיסמאות זמניות אלה יפקעו}} תוך {{PLURAL:$5|יום|יומיים|$5 ימים}}.\nעליכם להיכנס ולבחור סיסמה חדשה עכשיו. אם מישהו אחר ביצע בקשה זו, או אם נזכרתם בסיסמתכם\nהמקורית ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמה\nהישנה.",
- "passwordreset-emailtext-user": "המשתמש $1 ב{{GRAMMAR:תחילית|{{SITENAME}}}} ביקש איפוס של הסיסמה שלכם ב{{GRAMMAR:תחילית|{{SITENAME}}}}‏\n($4). {{PLURAL:$3|חשבון המשתמש הבא שייך|חשבונות המשתמש הבאים שייכים}} לכתובת הדואר האלקטרוני הזאת:\n\n$2\n\n{{PLURAL:$3|סיסמה זמנית זו תפקע|סיסמאות זמניות אלה יפקעו}} תוך {{PLURAL:$5|יום|יומיים|$5 ימים}}.\nעליכם להיכנס ולבחור סיסמה חדשה עכשיו. אם מישהו אחר ביצע בקשה זו, או אם נזכרתם בסיסמתכם\nהמקורית ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמה\nהישנה.",
+ "passwordreset-emailtext-ip": "מישהו (ככל הנראה אתם, מכתובת ה־IP מספר $1) ביקש איפוס של\nהסיסמה שלכם באתר {{SITENAME}} (שכתובתו $4). {{PLURAL:$3|חשבון המשתמש הבא שייך|חשבונות המשתמש הבאים שייכים}}\nלכתובת הדואר האלקטרוני הזאת:\n\n$2\n\n{{PLURAL:$3|סיסמה זמנית זו תפקע|סיסמאות זמניות אלה יפקעו}} תוך {{PLURAL:$5|יום|יומיים|$5 ימים}}.\nעליכם להיכנס ולבחור סיסמה חדשה עכשיו. אם מישהו אחר ביצע בקשה זו, או אם נזכרתם בסיסמתכם\nהמקורית ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמה\nהישנה.",
+ "passwordreset-emailtext-user": "המשתמש $1 ב{{GRAMMAR:תחילית|{{SITENAME}}}} ביקש איפוס של הסיסמה שלכם ב{{GRAMMAR:תחילית|{{SITENAME}}}}\n(שכתובתו $4). {{PLURAL:$3|חשבון המשתמש הבא שייך|חשבונות המשתמש הבאים שייכים}} לכתובת הדואר האלקטרוני הזאת:\n\n$2\n\n{{PLURAL:$3|סיסמה זמנית זו תפקע|סיסמאות זמניות אלה יפקעו}} תוך {{PLURAL:$5|יום|יומיים|$5 ימים}}.\nעליכם להיכנס ולבחור סיסמה חדשה עכשיו. אם מישהו אחר ביצע בקשה זו, או אם נזכרתם בסיסמתכם\nהמקורית ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמה\nהישנה.",
"passwordreset-emailelement": "שם משתמש:\n$1\n\nסיסמה זמנית:\n$2",
"passwordreset-emailsentemail": "אם כתובת הדואר האלקטרוני הזאת משויכת לחשבון שלך, אז יישלח דואר אלקטרוני לאיפוס הסיסמה.",
"passwordreset-emailsentusername": "אם יש כתובת דואר אלקטרוני שמשויכת לשם המשתמש הזה, אז יישלח דואר אלקטרוני לאיפוס הסיסמה.",
"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 ימים אחרונים",
"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": "मीडिया संचालक",
"right-deletedtext": "Pregled izbrisanog teksta i izmjena između izbrisanih izmjena",
"right-browsearchive": "Traženje obrisanih stranica",
"right-undelete": "Vraćanje stranica",
- "right-suppressrevision": "Pregledavanje, skrivanje i vraćanje izmjena na suradničkim stranicama bilo kojega suradnika",
+ "right-suppressrevision": "Pregledavanje, skrivanje i vraćanje određenih izmjena stranica od bilo kojega suradnika",
"right-viewsuppressed": "Prikaži izmjene skrivene od svih suradnika",
"right-suppressionlog": "Gledanje privatnih evidencija",
"right-block": "Blokiranje suradnika u uređivanju",
"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",
"cachedspecial-refresh-now": "A legfrissebb változat megjelenítése.",
"categories": "Kategóriák",
"categories-submit": "Mutat",
- "categoriespagetext": "A következő {{PLURAL:$1|kategória tartalmaz|kategóriák tartalmaznak}} lapokat vagy fájlokat.\nA [[Special:UnusedCategories|nem használt kategóriák]] nem jelennek meg.\nLásd még a [[Special:WantedCategories|keresett kategóriák]] listáját.",
+ "categoriespagetext": "A következő {{PLURAL:$1|kategória tartalmaz|kategóriák tartalmaznak}} lapokat vagy fájlokat.\nA nem használt kategóriák nem jelennek meg.\nLásd még a [[Special:WantedCategories|keresett kategóriák]] listáját.",
"categoriesfrom": "Kategóriák listázása a következő névtől kezdve:",
"deletedcontributions": "Törölt szerkesztések",
"deletedcontributions-title": "Törölt szerkesztések",
"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": "Էլ–փոստի հասցե",
"otherlanguages": "Nà asụ̀sụ̀ ndị ọ̀zọ",
"redirectedfrom": "(Dupụ̀rụ̀ sì $1)",
"redirectpagesub": "Kufù ebe ihü nka na ga",
- "lastmodifiedat": "Há rüchàrà na ihü nka na $1, mgbe $2",
+ "lastmodifiedat": "Oge ikpeazu Edeziri ihuakwụkwọ a bụ $1, mgbe $2",
"viewcount": "Ha banyere ihü nka na {{PLURAL:$1|otu|$1 mgbe ole}}.",
"protectedpage": "Ihü a cẹdolu a cẹdo",
"jumpto": "Wụ̀ ga:",
"accmailtitle": "mkpurụ okwu ejị a gafẹ a sipuole.",
"newarticle": "(Nke ohúrù)",
"newarticletext": "Í sòrò jikodo na ihü nke adíghị bòdì.\nÍ chȯrí ké ihü nke áhù, bìdó Í pị áka nà igbé nȯr nà àlà ngá (lé [$1 ihü nkwádo] màkà ụmà ozor).\nȮ bú nà Í byàrà ngá na aghọ, piá mpiá otúzor-intanet gi nke '''àzú'''.",
- "noarticletext": "Mkpụrụ edemede à díghị na ihü nke.\nÍ nwèríkí [[Special:Search/{{PAGENAME}}|tuó íshí ihü nke á]] na ihü ndi ozor,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chọwa na ndetu nchètá di nwanne],\nmà [{{fullurl:{{FULLPAGENAME}}|action=edit}} Í nwèríkí rü nà ihü á]</span>.",
+ "noarticletext": "Mkpụrụ edemede à díghị na ihü nke a.\nÍ nwèríke [[Special:Search/{{PAGENAME}}|chọ ísí ihu nke á]] na ihu ndi ọzọ,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} chọwa na ndetu nchètá di nwanne],\nmà [{{fullurl:{{FULLPAGENAME}}|action=edit}} Í nwèríkí rü nà ihü á]</span>.",
"userpage-userdoesnotexist-view": "Bùwá ọ'bànifé \"$1 à díghị na nsónùsòrò.",
"blocked-notice-logextract": "Ha gbàchìrì ọ'bànifé nke.\nNdetu nchèta mbgàchì ǹkè ógè nso di na àlà màkà ádià má àmá:",
"usercssyoucanpreview": "'''Lè kwá:''' Jí mpiá \"{{int:showpreview}}\" Í létú òtù CSS gí di mgbe Í donyèrè ya.",
"recentchanges": "Mgbánwè ógè nso",
"recentchanges-legend": "Nràlụ màkà Ihe gbanwere ubwá",
"recentchanges-feed-description": "Chóputà ihe ógẹ ǹsò na wiki ímé órírí nke á.",
+ "recentchanges-label-newpage": "Ndezi a mmepụtara ihuakwukwọ ọhuru",
"recentchanges-label-minor": "Ihe bu orü ntakírí",
"recentchanges-label-bot": "Bot deziri ihe a",
"recentchanges-legend-newpage": "$1 - ihü ohúrù",
"linkstoimage": "{{PLURAL:$1|Ihü nká|Ihü nke $1}} na jikodo gá usòrò nká:",
"nolinkstoimage": "Àdíghị ihü na jikodo usòrò nke.",
"sharedupload": "Ákwúkwó runotu nke shì $1 na ó nwèríkí di na orürü nke ndi ozor.",
+ "sharedupload-desc-here": "Failụ a si na $1,enwekwara ike iji ya eme ihe na arụmarụ ọzọ. Nkọwa na [$2 ihuakwukwọ nkọwa failụ] eziri na okpuru.",
"uploadnewversion-linktext": "Tinyé usòrò di òhúrù na élú nke",
"shared-repo-from": "shí $1",
"filerevert": "Nwèlaàzụ $1",
"tooltip-pt-mycontris": "Ndetù màkà ihe {{GENDER:|ị}} mètàrà",
"tooltip-pt-login": "Anyi si ka Í gbanyé; chetákwá na nsogbu adighi I gbanye ma Í chógị gbànyé",
"tooltip-pt-logout": "Fwuör",
+ "tooltip-pt-createaccount": "Ọ gadi nma ka immepe ihuakwukwọ ma tinye akara nbanye, mana ọ bụghị iwu.",
"tooltip-ca-talk": "Akíkó maka ihe di na ihü nka",
"tooltip-ca-edit": "Mèzi ihuâ",
"tooltip-ca-addsection": "Binyíte nkeji ohúrù",
"tooltip-t-permalink": "Jikodo nke dìrì e dí nke na gá ngbàzì ihü nka",
"tooltip-ca-nstab-main": "Zi ihe nor na ihüá",
"tooltip-ca-nstab-user": "Zi ihü ọ'bànifé",
- "tooltip-ca-nstab-special": "Ihü mkpà, a nweriki ru na ya onwe ya",
+ "tooltip-ca-nstab-special": "Ihe a bụ ihuakwukwo pụrụ iche anapụgi idezi",
"tooltip-ca-nstab-project": "Lé ihü hé chèdòlù",
"tooltip-ca-nstab-image": "Zi ihü usòrò",
"tooltip-ca-nstab-template": "Zi mkpurụ ihü",
"file-info-size": "$1 × $2 pixel, ívù akwukwo orunótu: $3, MIME nke: $4",
"file-nohires": "Nke káchá mmá na ányá àdíghị.",
"svg-long-desc": "usòrò SVG, nà áhà pixel $1 × $2, ívụ usòrò: $3",
- "show-big-image": "Hü ya ka o dị",
+ "show-big-image": "Failụ si na nke mbu",
+ "show-big-image-size": "$1 × $2 piksels",
"file-info-gif-looped": "etemte",
"newimages-legend": "Nzàtà",
"noimages": "Ọ díghì ihe di ngá Í lé.",
"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",
"upload-form-label-infoform-date": "日付",
"upload-form-label-own-work-message-generic-local": "私は {{SITENAME}} 上での以下の利用規約とライセンス方針で、このファイルをアップロードしていることを確認します。",
"upload-form-label-not-own-work-message-generic-local": "もし、あなたは {{SITENAME}} の方針の下で、このファイルをアップロードすることができない場合には、このダイアログを閉じて、別の方法をお試しください。",
- "upload-form-label-not-own-work-local-generic-local": "また、[[Special:Upload|デフォルトのアップロードページ]]を試してみてください。",
+ "upload-form-label-not-own-work-local-generic-local": "また、[[Special:Upload|既定のアップロードページ]]を試してみてください。",
"upload-form-label-own-work-message-generic-foreign": "私は共有リポジトリにこのファイルをアップロードしていることを理解しています。私は、そこにサービスやライセンス方針を以下のようにやっていることを、確認します。",
"upload-form-label-not-own-work-message-generic-foreign": "もし、あなたは共有リポジトリの方針の下で、このファイルをアップロードすることができない場合には、このダイアログを閉じて、別の方法をお試しください。",
- "upload-form-label-not-own-work-local-generic-foreign": "このファイルはその方針の下でそこにアップロードすることができれば、また、 [[Special:Upload|the upload page on {{SITENAME}}]]を使用してみてください",
+ "upload-form-label-not-own-work-local-generic-foreign": "{{SITENAME}} の方針の下でこのファイルをアップロードできる場合は、[[Special:Upload|{{SITENAME}} のアップロードページ]]を使用してみてください。",
"backend-fail-stream": "ファイル $1 をストリームできませんでした。",
"backend-fail-backup": "ファイル $1 をバックアップできませんでした。",
"backend-fail-notexists": "ファイル $1 は存在しません。",
"showdiff": "ცვლილებების ჩვენება",
"blankarticle": "გაფრთხილება: გვერდი, რომელსაც ქმნით, ცარიელია. თუკი კვლავ დააჭერთ ღილაკს \"$1\", გვერდი შეიქმნება შემცვლელობის გარეშე.",
"anoneditwarning": "<strong>გაფრთხილება:</strong> თქვენ არ ხართ ავტორიზირებული. თქვენი IP მისამართი საჯაროდ ხილული იქნება, თუკი განახორციელებთ რედაქტირებას. თუ თქვენ გაივლით <strong>[$1 ავტორიზაციას]</strong> ან <strong>[$2 შექმნით ანგარიშს]</strong>, სხვა უპირატესობებთან ერთად, თქვენი რედაქტირებები დაუკავშირდება თქვენს მომხმარებლის სახელს.",
- "anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP მისამართი შეინახება გვერდის ისტორიაში. ''",
+ "anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP-მისამართი შეინახება გვერდის ისტორიაში. ''",
"missingsummary": "'''შეხსენება:''' თქვენ არ მიგითითებიათ რედაქტირების რეზიუმე.\nთუ ისევ დააწკაპუნებთ შენახვაზე, თქვენი რედაქტირება რეზიუმეს გარეშე დამახსოვრდება.",
"selfredirect": "გაფრთხილება: თქვენ გადამისამართებას იმავე გვერდზე ქმნით. შესაძლოა, თქვენ გადამისამართებისთვის აირჩიეთ არასწორი სამიზნე გვერდი ან არედაქტირებთ არასამიზნე გვერდს. \n\nთუ თქვენ კიდევ ერთხელ დააჭერთ ღილაკს \"$1\", გადამისამართება შეიქმნება.",
"missingcommenttext": "გთხოვთ შეიყვანოთ კომენტარი.",
"blocklist-nousertalk": "ვერ შეასწორებთ განხილვის გვერდს",
"blocklist-editing": "რედაქტირება",
"ipblocklist-empty": "დაბლოკვის სია ცარიელია.",
- "ipblocklist-no-results": "მოთხოვნილი IP-მისამართი არ არის დაბლკილი",
+ "ipblocklist-no-results": "á\83\9bá\83\9dá\83\97á\83®á\83\9dá\83\95á\83\9cá\83\98á\83\9aá\83\98 IP-á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83\90á\83 á\83\90á\83 á\83\98á\83¡ á\83\93á\83\90á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83\9aá\83\98",
"blocklink": "ბლოკირება",
"unblocklink": "ბლოკის მოხსნა",
"change-blocklink": "ბლოკის შეცვლა",
"undo-success": "D'Ännerung gëtt réckgängeg gemaach. Iwwerpréift w.e.g. de Verglach ënnendrënner fir nozekuckeen ob et sou richteg ass, duerno späichert w.e.g d'Ännerungen of, fir dës Aktioun ofzeschléissen.",
"undo-failure": "D'Ännerung konnt net réckgängeg gemaach ginn, wëll de betraffenen Abschnitt an der Tëschenzäit geännert gouf.",
"undo-norev": "D'Ännerung kann net zréckgesat ginn, well et se net gëtt oder well se scho geläscht ass.",
- "undo-nochange": "D'Ännerung gouf anscheinend schonn zeréckgesat.",
+ "undo-nochange": "D'Ännerung gouf anscheinend schonn zréckgesat.",
"undo-summary": "Ännerung $1 vu(n) [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussioun]] | [[Special:Contributions/$2|{{MediaWiki:Contribslink}}]]) annulléieren.",
"undo-summary-username-hidden": "Versioun $1 vun engem verstoppte Benotzer zrécksetzen",
"cantcreateaccount-text": "D'Opmaache vu Benotzerkonten vun dëser IP Adress ('''$1''') gouf vum [[User:$3|$3]] gespaart.\n\nDe Benotzer $3 huet \"$2\" als Grond uginn.",
"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",
"filerenameerror": "Не можев да ја преименувам податотеката „$1“ во „$2“.",
"filedeleteerror": "Не може да се избрише податотеката „$1“.",
"directorycreateerror": "Не можеше да се создаде именикот „$1“.",
- "directoryreadonlyerror": "Ð\9fапкаÑ\82а â\80\9e$1â\80\9c не е запиÑ\81лива.",
+ "directoryreadonlyerror": "Ð\9fапкаÑ\82а â\80\9e$1â\80\9c е Ñ\81амо за Ñ\87иÑ\82аÑ\9aе.",
"directorynotreadableerror": "Папката „$1“ не е читлива.",
"filenotfound": "Не може да се најде податотеката „$1“.",
"unexpected": "Неочекувана вредност: „$1“=„$2“.",
"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": "кислев",
"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": "हा पसंतीक्रम आपल्या पुढील आल्याची नोंद केल्यानंतर कार्यान्वित होईल.",
"ipbreason": "အကြောင်းပြချက်:",
"ipbreason-dropdown": "*ယေဘုယျ ပိတ်ပင်တားဆီးရခြင်း အကြောင်းပြချက်များ\n** မှားယွင်းအချက်အလက်များကို ထည့်သွင်းမှု\n** စာမျက်နှာများမှ အကြောင်းအရာကို ဖယ်ရှားမှု\n** ပြင်ပဆိုဒ်များသို့လင့်ခ်ချိတ်၍ ဖွမှု\n** စာမျက်နှာများတွင် ပေါက်တတ်ကရများ ထည့်သွင်းမှု\n** ခြိမ်းခြောက်ခြင်း အပြုအမူ/အနှောက်အယှက်ပေးခြင်း\n** အကောင့်များစွာကို အလွဲသုံးစားလုပ်မှု\n** လက်ခံနိုင်ဖွယ်မရှိသော အသုံးပြုသူအမည်",
"ipb-hardblock": "ဤအိုင်ပီလိပ်စာမှ လော့ဂ်အင်ဝင်ထားသော အသုံးပြုသူများကို တည်းဖြတ်ခြင်းမှ တားမြစ်ရန်",
- "ipbcreateaccount": "á\80¡á\80\80á\80±á\80¬á\80\84á\80·á\80ºá\80¡á\80\9eá\80\85á\80ºá\80\95á\80¼á\80¯á\80\9cá\80¯á\80\95á\80ºá\80\81á\80¼á\80\84á\80ºá\80¸á\80\80á\80á\80¯ á\80\90á\80¬á\80¸á\80\86á\80®á\80¸á\80\9bá\80\94á\80º",
+ "ipbcreateaccount": "á\80¡á\80\80á\80±á\80¬á\80\84á\80·á\80ºá\80\96á\80\94á\80ºá\80\90á\80®á\80¸á\80\81á\80¼á\80\84á\80ºá\80¸",
"ipbemailban": "အီးမေးပို့ခြင်းမှ အသုံးပြုသူကို တားဆီးရန်",
"ipbenableautoblock": "ဤအသုံးပြုသူ အသုံးပြုသော အိုင်ပီလိပ်စာနှင့် သူတို့ ပြင်ဆင်ရန် ကြိုးစားသည့် နောက်ဆက်တွဲ အိုင်ပီလိပ်စာများကိုပါ အလိုအလျောက်ပိတ်ပင်ရန်",
"ipbsubmit": "ဤအသုံးပြုသူကို ပိတ်ပင်ရန်",
"nav-login-createaccount": "Совамо / тейть совамотарка",
"logout": "Лисеме",
"userlogout": "Лисеме",
- "notloggedin": "Ð\90пак Ñ\81оваво",
+ "notloggedin": "ÐзиÑ\82Ñ\8c Ñ\81ова",
"userlogin-noaccount": "Совамотаркат арась?",
"userlogin-joinproject": "Совак «{{SITENAME}}» сайтэнь теицякс",
"createaccount": "Теемс теицянь од лопа",
"loginerror": "Совамсто ильведькс",
"createacct-error": "Совамо таркань шкамосо-теемасо ильведевкс",
"createaccounterror": "Совамо тарка эзь теевть: $1",
- "nocookiesnew": "Совамо таркась шкавсь, ансяк зярс эзить сова.\n {{SITENAME}} сайтэв совават cookies функция вельде.\nАрсемашинасот cookies функциятне тевс апак нолда.\nВасня нолдытя функциятнень тевс, мейле совак: сёрмадыть од совамо леметь ды салава валот.",
+ "nocookiesnew": "Совамо таркась шкавсь, ансяк зярс эзить сова.\n {{SITENAME}} сайтэв совават «нумолонь кшинеть» функция вельде.\nАрсемашинасот «нумолонь кшинеть» функциятне тевс апак нолда.\nВасня нолдытя функциятнень тевс, мейле совак: сёрмадыть од совамо леметь ды салава валот.",
"nocookieslogin": "{{SITENAME}} лопасо теицятнень содавтомга «нумолонь кшинеть» функциясь эряви. Ней содымашинасот «нумолонь кшинеть» функциясь апак нолда. Инескеть нолдытя тевс «нумолонь кшинеть» функциянть, мейле одов совак.",
+ "nocookiesfornew": "Совамо таркась эзь шкаво, эзь кемекставо тенк косто саевсь. \nВарштыка «нумолонь кшинеть» функциясь тевс нолдазь -- апак. Мейле одкстомтык те лопанть ды одов варчик.",
"noname": "Зярс эзить максо кемекстазь теицянь лем.",
"loginsuccesstitle": "Совавить",
"loginsuccess": "'''Тон совить {{SITENAME}}-с кода \"$1\".'''",
"summary-preview": "Цётомань седеикелев вановкс:",
"subject-preview": "Темань/коняксонь васнянь невтема:",
"blockedtitle": "Совицясь аравтозь саймас",
- "blockedtext": "'''Тонть теицянь леметь эли IP-тешкстэть совавтозь саймас.'''\n\nСаймас совавтынзеть $1 прявт кирдицясь. Максозь истямо тувталось: ''«$2»''.\n\n* Саймас совавтозят: $8\n* Саймасто нолдамсат: $6\n* Саймас совавтозесь: $7\n\nУли мелеть пачтт сёрма теицянтень $1 эли лиятненень [[{{MediaWiki:Grouppage-sysop}}|прявт кирдицятненень]], сынст марто маштови кортамс саймас совавтомадонть.\nМель явт, эзик максо е-почта сёрмапаргот (адресэть) [[Special:Preferences|эсеть аравтоматнесэ]], а нолдави тевс 'сёрмадт те теицянтень' функциясь. Истяжо функциясь а нолдави сестэяк, зярдо тосояк саймас совавтозят.\n\nIP-тешкстэть — $3, саймас совавтоманть ID-сь — #$5. Инескеть, кевкстемат улить, невттяя нетнень лангс.",
+ "blockedtext": "<strong>Тонть теицянь леметь эли IP-тешкстэть совавтозь саймас.</strong>\n\nСаймас совавтынзеть $1.\nМаксозь тувталось <em>«$2»</em>.\n\n* Саймас совавтозят: $8\n* Саймасто нолдамсат: $6\n* Саймас совавтозесь: $7\n\nУли мелеть пачтт сёрма теицянтень $1 эли лиятненень [[{{MediaWiki:Grouppage-sysop}}|прявткирдицянтень]], сонзэ марто маштови кортамс саймас совавтомадот.\nМель явт, эзик максо е-почта сёрмапаргот (адресэть) [[Special:Preferences|эсеть аравтоматнесэ]], а нолдави тевс 'сёрмадт те теицянтень' функциясь. Истяжо функциясь а нолдави сестэяк, зярдо тосояк саймас совавтозят.\n\nНеень IP-тешксэть — $3, саймас совавтомань ID-сь — #$5.\nИнескеть, кевкстемат улить, невттяя неть тешкстнэнь-индикатортнэнь лангс.",
"blockednoreason": "тувтал апак максо",
"whitelistedittext": "Лопанть витнемс - петнемс эряви $1.",
"nosuchsectiontitle": "Явксось а муеви",
"postedit-confirmation-published": "Витнемат-петнемат нолдазь оляс.",
"edit-already-exists": "Од лопась кодаяк эзь тееве; сон уш ули.",
"defaultmessagetext": "Пачтямнень свалонь текст",
+ "content-model-wikitext": "вики-текст",
"post-expand-template-inclusion-warning": "Ванок: Парцунлопатнеде кельгстят пек ламо.\nСовавтовомо аволь весе парцунлопатне кельгить.",
"post-expand-template-inclusion-category": "Лопатне, конатнень лопапарцун марто покшолмаст пек ламо",
"post-expand-template-argument-warning": "'''Ванок''': Те лопасонть ули лопапарцунонь вейке эли седе ламо аргумент, конась вельть покш. Сеть аргументтнэ нардазь.",
"lineno": "Киксэсь $1:",
"compareselectedversions": "Кочказь версиятнень аравтомс карадо-каршо",
"editundo": "Велявтомс мекев мезе витнинь-петнинь",
+ "diff-empty": "(А явови)",
"searchresults": "Мезе муевсь",
"searchresults-title": "Мезе муевсь \"$1\" вешнемасо",
"titlematches": "Лопанть коняксонзо марто вейтьс прась",
"recentchangeslinked-feed": "Сюлмавозь лиякстоматне",
"recentchangeslinked-toolbox": "Сюлмавозь лиякстоматне",
"recentchangeslinked-title": "Полавтнемат-лиякстомтомат конат кандовить теватезэнь \"$1\"",
- "recentchangeslinked-summary": "Ули мелеть неемс полавтнемат, конат теезь кодамояк лопас сюлмазь лопатнес, сёрмадт лопанть лемензэ. (Ули мелеть неемс категорияс совавтовицят, сёрмадт Категория:\"Категориянть лемензэ\".) Лопатнес теезь витнемат-петнемат тешкставить [[Special:Watchlist|Ванома лопасот]] <strong>эчкстэ</strong>",
+ "recentchangeslinked-summary": "Ули мелеть неемс полавтнемат, конат теезь кодамояк лопас сюлмазь лопатнес, сёрмадт лопанть лемензэ. (Ули мелеть неемс категорияс совавтовицят, сёрмадт {{ns:category}}:«Категориянть лемензэ».) Лопатнес теезь витнемат-петнемат тешкставить [[Special:Watchlist|Ванома лопасот]] <strong>эчкстэ</strong>",
"recentchangeslinked-page": "Лопанть лемезэ:",
"recentchangeslinked-to": "Тень таркас невтить те лопанть марто сюлмазь лопатнесэ полавтнематнень",
"upload": "Ёкстамс файла",
"filehist-filesize": "Файланть покшолмазо",
"filehist-comment": "Мельполадкс",
"imagelinks": "Ков файлась нолдави тевс",
- "linkstoimage": "Те файланть марто сюлмавозь вана {{PLURAL:$1|истямо сюлмавома пене|$1 истят сюлмавома пенеть}}:",
+ "linkstoimage": "Те файланть марто сюлмавозь вана {{PLURAL:$1|истямо лопа|$1 истят лопат}}:",
"nolinkstoimage": "Арась вейкеяк лопа, кона сюлмавови те файланть марто.",
"sharedupload": "Те файлась саезь \"$1\" файлань пусмосто, сон нолдави тевс лия проектсэяк.",
"sharedupload-desc-here": "Те файлась сась истямо $1 таркасто, паряк сон нолдави тевс лия проектсэ.\nКувалманзо сёрмадовксось [$2 файладонть ёвтнема лопазо] невтезь ало.",
"allpagessubmit": "Молемс",
"allpagesprefix": "Невтевкс лопась полаткс марто:",
"allpages-bad-ns": "{{SITENAME}} сайтсэнть арась лем потмо \"$1\".",
+ "allpages-hide-redirects": "Кекшемс лияв печтематнень",
"categories": "Категорият",
"categoriespagetext": "{{PLURAL:$1|Те категориясонть|Неть категориятнесэ}} улить лопат эли медият.\n[[Special:UnusedCategories|тевс апак нолда категориятне]] тесэ а невтевить.\nИстяжо ванытя [[Special:WantedCategories|вешема категориятнень]].",
"sp-deletedcontributions-contribs": "путовксонзо",
"unwatch": "А ванстнемс тень мельга",
"unwatchthispage": "Лоткамс ванстомадонзо",
"notvisiblerev": "Лиякстомтомась нардазь",
- "watchlist-details": "Ванома лемрисьмесэть {{PLURAL:$1|$1 лопа|$1 лопат}}, кортнема лопатнень лангс апак вано.",
+ "watchlist-details": "Ванома лемрисьмесэть (кортнема лопатнесэяк) {{PLURAL:$1|$1 лопа|$1 лопат}}.",
"wlshowlast": "Невтемс меельце $1 цяст $2 чить",
"watchlist-options": "Ванома потмонь аравтнемат",
"watching": "Ванома...",
"unwatching": "Аванома...",
+ "enotif_reset": "Путомс тешкс весе лопатнес, козонь совсян",
"enotif_impersonal_salutation": "{{SITENAME}} теицясь",
"enotif_lastdiff": "Те полавтоманть ваномга вант $1.",
"enotif_anon_editor": "лемтеме теиця $1",
"contributions": "{{GENDER:$1|Теицянть}} путовксонзо",
"contributions-title": "Теицянть путовксонзо $1 таркантень",
"mycontris": "Монь путовкстнэ",
+ "anoncontribs": "Путовкст",
"contribsub2": "{{GENDER:$3|$1}}-нь кладозо ($2)",
"uctop": "течеме чинь",
"month": "Ковстонть (ды седе икеле):",
"tooltip-feed-rss": "\"RSS\" чидикерькске те лопантень",
"tooltip-feed-atom": "Атом лезкс те лопантень",
"tooltip-t-contributions": "Невтть мезе {{GENDER:$1|те теицясь}} полавтсь",
- "tooltip-t-emailuser": "Те Ñ\82еиÑ\86Ñ\8fнÑ\82енÑ\8c кÑ\83Ñ\87омÑ\81 е-Ñ\81Ñ\91Ñ\80ма",
+ "tooltip-t-emailuser": "Ð\9aÑ\83Ñ\87омÑ\81 е-Ñ\81Ñ\91Ñ\80ма {{GENDER:$1|Ñ\82е Ñ\82еиÑ\86Ñ\8fнÑ\82енÑ\8c}}",
"tooltip-t-upload": "Йовкстамс файлат",
"tooltip-t-specialpages": "Башка тевень лопатне мельга-мельцек",
"tooltip-t-print": "Лопанть конёв лангс нолдавома версиязо",
"pageinfo-header-restrictions": "Лопанть ванстоманзо",
"pageinfo-header-properties": "Лопанть уликсчинзэ",
"pageinfo-display-title": "Коняксонть таргамс лангс",
+ "pageinfo-default-sort": "Сортировамонь васень панжома",
+ "pageinfo-length": "Лопанть покшолмазо (байтасо)",
"pageinfo-article-id": "Лопа ID",
+ "pageinfo-language": "Лопасонть текстэнь келесь",
+ "pageinfo-content-model": "Лопапотмонь парцун",
+ "pageinfo-robot-policy": "Вешнема машинань индексэнь путомась",
"pageinfo-robot-index": "Маштови",
"pageinfo-few-watchers": "$1 эли седе ламо {{PLURAL:$1|ваныцянзо}} арасть",
+ "pageinfo-redirects-name": "Зяро лопат печтевтезь те лопас",
"pageinfo-subpages-name": "Те лопанть явкслопанзо",
"pageinfo-firstuser": "Лопанть шкицязо",
"pageinfo-firsttime": "Лопась шказель",
"pageinfo-lasttime": "Меельцеде витнезель-петнезель",
"pageinfo-edits": "Зяроксть витнезь-петнезь",
"pageinfo-authors": "Весемезэ зяро авторонзо",
+ "pageinfo-recent-edits": "Зяро витнемат-петнемат (меельце «$1»-сто)",
"pageinfo-toolboxlink": "Лопадо иформация",
"pageinfo-contentpage": "Текст марто лопакс ловови",
"pageinfo-contentpage-yes": "Истя",
"watchlistedit-raw-submit": "Мезе мельга ванстнят, спискаст одкстомтомс",
"watchlistedit-raw-added": "{{PLURAL:$1|1 конякс поладозель|$1 конякст поладозельть}}:",
"watchlistedit-raw-removed": "{{PLURAL:$1|1 конякс нардазель|$1 конякст нардазельть}}:",
+ "watchlisttools-clear": "Чамдомс ванома лемрисьменть",
"watchlisttools-view": "Лиякстоматьне лопатнесэ потмоксстонть",
"watchlisttools-edit": "Ваномс ды витнемс-петнемс мезе мельга ванстнят",
"watchlisttools-raw": "Витнемс-петнемс верек ваномалопанть",
"version-software": "Нолдань программат",
"version-software-product": "Шкавкс-нолдавкс",
"version-software-version": "Верзия",
+ "redirect-submit": "Молемс",
+ "redirect-lookup": "Вешнемс:",
"redirect-user": "Теицянь идентификатор",
+ "redirect-page": "Лопа ID",
+ "redirect-file": "Файлань лем",
"fileduplicatesearch": "Вешнемс кавтаське файлат",
"fileduplicatesearch-filename": "Файла лем:",
"fileduplicatesearch-submit": "Вешнемс",
"intentionallyblankpage": "Те лопась арьсезь-содазь чавосто кадозь",
"tag-filter": "[[Special:Tags|Tag]] сувтемесь:",
"tag-filter-submit": "Сувтемень пачк нолдамс",
+ "tags-active-yes": "Истя",
+ "tags-active-no": "Аволь",
"tags-edit": "витнемс-петнемс",
"compare-page1": "Лопа 1",
"compare-page2": "Лопа 2",
"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]]:",
"Tulsi Bhagat",
"ديفيد",
"Haribanshi",
- "Parbat subedi"
+ "Parbat subedi",
+ "पर्वत सुबेदी"
]
},
"tog-underline": "रेखाङ्कित लिङ्क:",
"ipb-blocklist": "हाल रहेका निषेधहरू हेर्नुहोस्",
"ipb-blocklist-contribs": "{{GENDER:$1|$1}}को लागि योगदान",
"block-expiry": "सकिने:",
+ "block-options": "अतिरिक्त विकल्पहरू",
+ "block-prevent-edit": "सम्पादन हुँदैछ",
+ "block-reason": "कारण:",
+ "block-target": "प्रयोगकर्ता नाम वा आइपी ठेगाना",
"unblockip": "प्रयोगकर्ताको निषेध खारेज गर्नुहोस्",
"unblockiptext": "IP ठेगाना अथवा प्रयोगकर्तामाथि पहिले लगाइएको रोक फुकुवा गर्न तलको प्रपत्र प्रयोग गर्नुहोस्।",
"ipusubmit": "यो रोक हटाउने",
"wlshowhidemine": "mine endringar",
"wlshowhidecategorization": "kategorisering av sider",
"watchlist-options": "Alternativ for overvakingslista",
- "watching": "Overvakar...",
+ "watching": "Overvaker …",
"unwatching": "Fjernar frå overvakinglista...",
"watcherrortext": "Det oppstod ein feil under endringa av overvakingsinnstillingane dine for «$1».",
"enotif_reset": "Merk alle sidene som vitja",
"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": "تالا لان دی وجہ دسو تے اہ وی دسو جے کدوں تالا کھلے گا",
"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}}",
"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",
"tog-watchlisthidebots": "Maršin fasalyaney tugu hawgayhayey ra",
"tog-watchlisthideminor": "Fasalyan kayney tugu hawgayhayey ra",
"tog-watchlisthideliu": "Goykaw hurantey fasalyaney tugu hawgayhayey ra",
+ "tog-watchlistreloadautomatically": "Hawgayhayey zumandi taaga ngey bonše waati kul kaŋ faya jinay ga barmay (JavaScript ga waažibi)",
+ "tog-watchlistunwatchlinks": "Muray/guna šilbay tenjanteyaŋ tonton ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}}) moo gunantey nda barmay ga (JavaScript ga waažibi ka goyoo woo tee)",
"tog-watchlisthideanons": "Goykaw tugantey fasalyaney tugu hawgayhayey ra",
"tog-watchlisthidepatrolled": "Faslayan kurantey tugu hawgayhayey ra",
+ "tog-watchlisthidecategorization": "Moo dumi kayandiyan tugu",
"tog-ccmeonemails": "Batagawey kaŋ ay g'i sanba goykaw taney se gaabu yane",
"tog-diffonly": "Ma ši moo gundekuna cebe fayarey cire",
"tog-showhiddencats": "Duni tugantey cebe",
"right-noratelimit": "отпорност на ограничења",
"right-import": "увожење страница из других викија",
"right-importupload": "увожење страница из отпремљене датотеке",
- "right-patrol": "означавање туђих измена патролираним",
- "right-autopatrol": "аутоматско означавање измена патролираним",
- "right-patrolmarks": "прегледање ознака за патролирање унутар скорашњих измена",
+ "right-patrol": "означавање измена других корисника патролираним",
+ "right-autopatrol": "аутоматско означавање сопствених измена патролираним",
+ "right-patrolmarks": "преглед ознака за патролирање у скорашњим изменама",
"right-unwatchedpages": "прегледање списка ненадгледаних страница",
"right-mergehistory": "обједињавање историја страница",
"right-userrights": "уређивање свих корисничких права",
"action-rollback": "брзо вратите измене последњег корисника који је уређивао одређену страницу",
"action-import": "увозите странице из другог викија",
"action-importupload": "увозите странице путем отпремања датотеке",
- "action-patrol": "означите туђе измене као патролиране",
- "action-autopatrol": "ознаÑ\87иÑ\82е Ñ\81опÑ\81Ñ\82вене измене као паÑ\82Ñ\80олиÑ\80ане",
+ "action-patrol": "означите измене других корисника патролираним",
+ "action-autopatrol": "ознаÑ\87иÑ\82е Ñ\81опÑ\81Ñ\82вене измене паÑ\82Ñ\80олиÑ\80аним",
"action-unwatchedpages": "прегледате списак ненадгледаних страница",
"action-mergehistory": "обједините историју ове странице",
"action-userrights": "уређујете сва корисничка права",
"undelete-revision-row2": "$1 ($2) $3 . . $4 $5 $6 $7 $8",
"namespace": "Именски простор:",
"invert": "Обрни избор",
- "tooltip-invert": "Означите ову кутијуцу да бисте сакрили промене на страницама у изабраном именском простору (и повезаним именским просторима, ако је означено)",
- "tooltip-whatlinkshere-invert": "Означите ову кутијицу за сакривање веза са страница у изабраном именском простору.",
+ "tooltip-invert": "Означите ово поље да бисте сакрили промене на страницама у изабраном именском простору (и повезаним именским просторима, ако је означено)",
+ "tooltip-whatlinkshere-invert": "Означите ово поље да бисте сакрили везе са страница унутар изабраног именског простора.",
"namespace_association": "Повезани именски простор",
- "tooltip-namespace_association": "Означите ову кутијицу да бисте укључили и разговор или именски простор теме која је повезана са изабраним именским простором",
+ "tooltip-namespace_association": "Означите ово поље да бисте укључили разговор или именски простор теме која је повезана са изабраним именским простором",
"blanknamespace": "(главни)",
"contributions": "{{GENDER:$1|Доприноси корисника|Доприноси кориснице|Кориснички доприноси}}",
"contributions-title": "Доприноси {{GENDER:$1|корисника|кориснице}} $1",
"unlockconfirm": "Желим да откључам базу.",
"lockbtn": "Закључај базу",
"unlockbtn": "Откључај базу",
- "locknoconfirm": "Нисте проверили потврдну кутију.",
+ "locknoconfirm": "Нисте потврдили поље за потврду.",
"lockdbsuccesssub": "База је закључана",
"unlockdbsuccesssub": "База је откључана",
"lockdbsuccesstext": "База података је закључана.<br />\nСетите се да је [[Special:UnlockDB|откључате]] када завршите с одржавањем.",
"pageinfo-user-id": "ID корисника",
"pageinfo-file-hash": "Hash вредност",
"pageinfo-view-protect-log": "Прикажи дневник заштите за ову страницу.",
- "markaspatrolleddiff": "Ð\9eзнаÑ\87и као паÑ\82Ñ\80олиÑ\80ано",
- "markaspatrolledtext": "Означи страницу као патролирану",
- "markaspatrolledtext-file": "Ð\9eзнаÑ\87и овÑ\83 веÑ\80зиÑ\98Ñ\83 даÑ\82оÑ\82еке као паÑ\82Ñ\80олиÑ\80анÑ\83",
- "markedaspatrolled": "Ð\9eзнаÑ\87ено као паÑ\82Ñ\80олиÑ\80ано",
- "markedaspatrolledtext": "Ð\98забÑ\80ана измена Ñ\81Ñ\82Ñ\80аниÑ\86е [[:$1]] ознаÑ\87ена Ñ\98е као паÑ\82Ñ\80олиÑ\80ана.",
+ "markaspatrolleddiff": "Ð\9eзнаÑ\87и паÑ\82Ñ\80олиÑ\80аном",
+ "markaspatrolledtext": "Означи ову страницу патролираном",
+ "markaspatrolledtext-file": "Ð\9eзнаÑ\87и овÑ\83 веÑ\80зиÑ\98Ñ\83 даÑ\82оÑ\82еке паÑ\82Ñ\80олиÑ\80аном",
+ "markedaspatrolled": "Ð\9eзнаÑ\87ено паÑ\82Ñ\80олиÑ\80аним",
+ "markedaspatrolledtext": "Ð\98забÑ\80ана измена Ñ\81Ñ\82Ñ\80аниÑ\86е [[:$1]] ознаÑ\87ена Ñ\98е паÑ\82Ñ\80олиÑ\80аном.",
"rcpatroldisabled": "Патролирање скорашњих измена је онемогућено",
"rcpatroldisabledtext": "Функција патролирања скорашњих измена је тренутно онемогућена.",
- "markedaspatrollederror": "Ð\9dиÑ\98е могÑ\83Ñ\9bе ознаÑ\87иÑ\82и као паÑ\82Ñ\80олиÑ\80ано",
- "markedaspatrollederrortext": "Ð\9cоÑ\80аÑ\82е навеÑ\81Ñ\82и изменÑ\83 да биÑ\81Ñ\82е Ñ\98е ознаÑ\87или као паÑ\82Ñ\80олиÑ\80анÑ\83.",
- "markedaspatrollederror-noautopatrol": "Ð\9dе можеÑ\82е да ознаÑ\87иÑ\82е Ñ\81воÑ\98е пÑ\80омене као паÑ\82Ñ\80олиÑ\80ане.",
- "markedaspatrollednotify": "Ð\9eва пÑ\80омена на Ñ\81Ñ\82Ñ\80аниÑ\86и â\80\9e$1â\80\9d ознаÑ\87ена Ñ\98е као паÑ\82Ñ\80олиÑ\80ана.",
- "markedaspatrollederrornotify": "Ð\9eзнаÑ\87аваÑ\9aе ове измене паÑ\82Ñ\80олиÑ\80аном ниÑ\98е Ñ\83Ñ\81пело.",
+ "markedaspatrollederror": "Ð\9dиÑ\98е могÑ\83Ñ\9bе ознаÑ\87иÑ\82и паÑ\82Ñ\80олиÑ\80аним",
+ "markedaspatrollederrortext": "Ð\9cоÑ\80аÑ\82е навеÑ\81Ñ\82и изменÑ\83 да биÑ\81Ñ\82е Ñ\98е ознаÑ\87или паÑ\82Ñ\80олиÑ\80аном.",
+ "markedaspatrollederror-noautopatrol": "Ð\9dиÑ\98е вам дозвоÑ\99ено да ознаÑ\87аваÑ\82е Ñ\81опÑ\81Ñ\82вене пÑ\80омене паÑ\82Ñ\80олиÑ\80аним.",
+ "markedaspatrollednotify": "Ð\9eва пÑ\80омена на Ñ\81Ñ\82Ñ\80аниÑ\86и â\80\9e$1â\80\9d ознаÑ\87ена Ñ\98е паÑ\82Ñ\80олиÑ\80аном.",
+ "markedaspatrollederrornotify": "Означавање патролираном није успело.",
"patrol-log-page": "Дневник патролирања",
"patrol-log-header": "Ово је дневник патролираних измена.",
"confirm-markpatrolled-button": "У реду",
- "confirm-markpatrolled-top": "Ð\9eзнаÑ\87иÑ\82и изменÑ\83 $3 Ñ\81Ñ\82Ñ\80аниÑ\86е $2 као паÑ\82Ñ\80олиÑ\80анÑ\83?",
+ "confirm-markpatrolled-top": "Ð\9eзнаÑ\87иÑ\82и изменÑ\83 $3 Ñ\81Ñ\82Ñ\80аниÑ\86е $2 паÑ\82Ñ\80олиÑ\80аном?",
"deletedrevision": "Избрисана стара измена $1.",
"filedeleteerror-short": "Грешка при брисању датотеке: $1",
"filedeleteerror-long": "Дошло је до грешака при брисању датотеке:\n\n$1",
"logentry-move-move-noredirect": "$1 је {{GENDER:$2|преместио|преместила}} страницу $3 на $4 без остављања преусмерења",
"logentry-move-move_redir": "$1 је {{GENDER:$2|преместио|преместила}} страницу $3 на $4 преко преусмерења",
"logentry-move-move_redir-noredirect": "$1 је {{GENDER:$2|преместио|преместила}} страницу $3 на $4 преко преусмерења без остављања преусмерења",
- "logentry-patrol-patrol": "$1 Ñ\98е {{GENDER:$2|ознаÑ\87ио|ознаÑ\87ила}} изменÑ\83 $4 Ñ\81Ñ\82Ñ\80аниÑ\86е $3 као паÑ\82Ñ\80олиÑ\80анÑ\83",
- "logentry-patrol-patrol-auto": "$1 Ñ\98е аÑ\83Ñ\82омаÑ\82Ñ\81ки {{GENDER:$2|ознаÑ\87ио|ознаÑ\87ила}} изменÑ\83 $4 Ñ\81Ñ\82Ñ\80аниÑ\86е $3 као паÑ\82Ñ\80олиÑ\80анÑ\83",
+ "logentry-patrol-patrol": "$1 Ñ\98е {{GENDER:$2|ознаÑ\87ио|ознаÑ\87ила}} изменÑ\83 $4 Ñ\81Ñ\82Ñ\80аниÑ\86е $3 паÑ\82Ñ\80олиÑ\80аном",
+ "logentry-patrol-patrol-auto": "$1 Ñ\98е аÑ\83Ñ\82омаÑ\82Ñ\81ки {{GENDER:$2|ознаÑ\87ио|ознаÑ\87ила}} изменÑ\83 $4 Ñ\81Ñ\82Ñ\80аниÑ\86е $3 паÑ\82Ñ\80олиÑ\80аном",
"logentry-newusers-newusers": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
"logentry-newusers-create": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
"logentry-newusers-create2": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог $3",
"ipbreason": "காரணம்:",
"ipbreason-dropdown": "*பொதுவான தடைக் காரணங்கள்\n** பொய்யான தகவல்களை இடல்\n** பக்கங்களிலிருந்து உள்ளடக்கங்களை நீக்கல்\n** எரித இணைப்புகளை வெளியிணைப்பாக கொடுத்தல்\n** பக்கங்களுக்கு அர்த்தமற்ற உள்ளடக்கங்களை இணைத்தல்\n** பொறுப்பற்ற நடிவடிக்கைகள்\n** ஒரு பயனர் பல கணக்குகளைப் பேணல்\n** ஏற்றுக்கொள்ளப்படமுடியாத பயனர் பெயர்",
"ipb-hardblock": "இந்த IP முகவரியில் இருந்து புகுபதிகை செய்த பயனர்கள் தொகுப்பதைத் தடுக்கவும்",
- "ipbcreateaccount": "கணக்குகள் தொடங்குவதைத் தடு",
- "ipbemailban": "பயனரà¯\8d மினà¯\8dனà®\9eà¯\8dà®\9aலà¯\8d à®\9aà¯\86யà¯\8dவதà¯\88தà¯\8d தà®\9fà¯\81",
+ "ipbcreateaccount": "கணக்கு உருவாக்கம்",
+ "ipbemailban": "மினà¯\8dனà®\9eà¯\8dà®\9aலà¯\8d à®\85னà¯\81பà¯\8dபà¯\81தலà¯\8d",
"ipbenableautoblock": "தானியக்கமாக இப்பயனர் கடைசியாகப் பயன்படுத்திய ஐ.பி முகவரியையும் பங்களிக்க முயலும் ஐ.பி. முகவரிகளையும் தடை செய்",
"ipbsubmit": "இப் பயனரைத் தடு",
"ipbother": "வேறு நேரம்:",
"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": "ಈ ಪುಟಕ್ ಬದಲಾವಣೆದ ಇತಿಹಾಸ ಇಜ್ಜಿ",
"filerenameerror": "Не вдалося перейменувати файл «$1» на «$2».",
"filedeleteerror": "Не вдалося вилучити файл «$1».",
"directorycreateerror": "Не вдалося створити каталог \"$1\".",
- "directoryreadonlyerror": "Каталог \"$1\" доступний лише для читання.",
+ "directoryreadonlyerror": "Каталог «$1» доступний лише для читання.",
"directorynotreadableerror": "Каталог \"$1\" нечитабельний.",
"filenotfound": "Не вдалося знайти файл «$1».",
"unexpected": "Неочікуване значення: «$1»=«$2».",
"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** ناقابلِ قبول صارف نام",
"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",
'dependencies' => 'mediawiki.String',
'targets' => [ 'desktop', 'mobile' ],
],
- 'jquery.byteLimit' => [
- 'dependencies' => 'jquery.lengthLimit',
- 'deprecated' => 'Use "jquery.lengthLimit" instead.',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
'jquery.checkboxShiftClick' => [
'scripts' => 'resources/src/jquery/jquery.checkboxShiftClick.js',
'targets' => [ 'desktop', 'mobile' ],
],
'targets' => [ 'desktop', 'mobile' ],
],
- 'mediawiki.api.category' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- ],
- 'mediawiki.api.edit' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => [
- 'mediawiki.api',
- ],
- 'targets' => [ 'desktop', 'mobile' ],
- ],
- 'mediawiki.api.login' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- ],
- 'mediawiki.api.options' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
- 'mediawiki.api.parse' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
- 'mediawiki.api.upload' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
- 'mediawiki.api.user' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
- 'mediawiki.api.watch' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- ],
- 'mediawiki.api.messages' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- 'targets' => [ 'desktop', 'mobile' ],
- ],
- 'mediawiki.api.rollback' => [
- 'deprecated' => 'Use "mediawiki.api" instead.',
- 'dependencies' => 'mediawiki.api',
- ],
'mediawiki.content.json' => [
'styles' => 'resources/src/mediawiki.content.json.less',
],
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;
}
/* Show/hide animation is incorrect if the table has a margin set. Extra
- * "table.wikitable" is needed in the selector for CSS specificity. */
-table.wikitable.preview-limit-report {
+ * ".wikitable" is needed in the selector for CSS specificity. */
+.wikitable.preview-limit-report {
margin: 0;
}
*/
( 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 ) ) {
/**
* Table rendering
*/
-/* Compare `table.wikitable` in shared.css */
-table.wikitable,
+/* Compare `.wikitable` in shared.css */
+.wikitable,
.mw_metadata {
background: #fff;
margin: 1em 0;
font-size: 10pt;
}
-table.wikitable > caption,
+.wikitable > caption,
.mw_metadata caption {
padding: 5px;
font-size: 10pt;
}
-table.wikitable > tr > th,
-table.wikitable > tr > td,
-table.wikitable > * > tr > th,
-table.wikitable > * > tr > td,
+.wikitable > tr > th,
+.wikitable > tr > td,
+.wikitable > * > tr > th,
+.wikitable > * > tr > td,
.mw_metadata th,
.mw_metadata td {
/* Important is required to override any inline styles provided by editors */
padding: 0.4em 0.6em;
}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th,
+.wikitable > tr > th,
+.wikitable > * > tr > th,
.mw_metadata th {
text-align: center;
}
* wikitable class for skinning normal tables
* keep in sync with commonPrint.css
*/
-table.wikitable {
+.wikitable {
background-color: #f8f9fa;
color: #222;
margin: 1em 0;
border-collapse: collapse;
}
-table.wikitable > tr > th,
-table.wikitable > tr > td,
-table.wikitable > * > tr > th,
-table.wikitable > * > tr > td {
+.wikitable > tr > th,
+.wikitable > tr > td,
+.wikitable > * > tr > th,
+.wikitable > * > tr > td {
border: 1px solid #a2a9b1;
padding: 0.2em 0.4em;
}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th {
+.wikitable > tr > th,
+.wikitable > * > tr > th {
background-color: #eaecf0;
text-align: center;
}
-table.wikitable > caption {
+.wikitable > caption {
font-weight: bold;
}
.TablePager {
min-width: 80%;
+
+ // Remove as soon as `.mw-datatable` receives this `padding`, see T214208
+ td,
+ th {
+ padding: 0.2em 0.4em;
+ }
}
.TablePager .TablePager_sort-ascending a {
mw.rcfilters.ui.FilterTagMultiselectWidget.parent.prototype.doInputEscape.call( this );
// Blur the input
- this.input.$input.blur();
+ this.input.$input.trigger( 'blur' );
};
/**
* Respond to the user choosing a title
*/
mw.rcfilters.ui.RclTargetPageWidget.prototype.onLookupMenuItemChoose = function () {
- this.titleSearch.$input.blur();
+ this.titleSearch.$input.trigger( 'blur' );
};
/**
this.saveButton.toggle( isEdit );
if ( isEdit ) {
- this.editInput.$input.focus();
+ this.editInput.$input.trigger( 'focus' );
}
this.editing = isEdit;
}
} ).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()
);
}
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' );
}
};
.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 {
*/
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;
};
}
}
-.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;
// 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' );
};
/**
mw.widgets.SearchInputWidget.parent.prototype.onLookupMenuItemChoose.apply( this, arguments );
if ( this.performSearchOnClick ) {
- this.$element.closest( 'form' ).submit();
+ this.$element.closest( 'form' ).trigger( 'submit' );
}
};
* @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.
// 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";
}
}
}
*/
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 );
}
/**
<?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";
}
/**
*/
public function testGetInstalledDependencies() {
$installed = new ComposerInstalled( $this->installed );
- $this->assertArrayEquals( [
+ $this->assertEquals( [
'leafo/lessphp' => [
'version' => '0.5.0',
'type' => 'library',
],
'description' => 'The PHP Unit Testing framework.',
],
- ], $installed->getInstalledDependencies(), false, true );
+ ], $installed->getInstalledDependencies() );
}
}
<?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";
}
/**
*/
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() {
<?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";
}
/**
*/
public function testGetInstalledDependencies() {
$lock = new ComposerLock( $this->lock );
- $this->assertArrayEquals( [
+ $this->assertEquals( [
'wikimedia/cdb' => [
'version' => '1.0.1',
'type' => 'library',
'and configure its support in an easy way. ' .
'Main features are language selection, input methods and web fonts.',
],
- ], $lock->getInstalledDependencies(), false, true );
+ ], $lock->getInstalledDependencies() );
}
}
--- /dev/null
+<?php
+/*
+ * Copyright 2019 Wikimedia Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+/**
+ * @group Media
+ * @covers MSCompoundFileReader
+ */
+class MSCompoundFileReaderTest extends PHPUnit\Framework\TestCase {
+ public static function provideValid() {
+ return [
+ [ 'calc.xls', 'application/vnd.ms-excel' ],
+ [ 'excel2016-compat97.xls', 'application/vnd.ms-excel' ],
+ [ 'gnumeric.xls', 'application/vnd.ms-excel' ],
+ [ 'impress.ppt', 'application/vnd.ms-powerpoint' ],
+ [ 'powerpoint2016-compat97.ppt', 'application/vnd.ms-powerpoint' ],
+ [ 'word2016-compat97.doc', 'application/msword' ],
+ [ 'writer.doc', 'application/msword' ],
+ ];
+ }
+
+ /** @dataProvider provideValid */
+ public function testReadFile( $fileName, $expectedMime ) {
+ global $IP;
+
+ $info = MSCompoundFileReader::readFile( "$IP/tests/phpunit/data/MSCompoundFileReader/$fileName" );
+ $this->assertTrue( $info['valid'] );
+ $this->assertSame( $expectedMime, $info['mime'] );
+ }
+
+ public static function provideInvalid() {
+ return [
+ [ 'dir-beyond-end.xls', 'ERROR_READ_PAST_END' ],
+ [ 'fat-loop.xls', 'ERROR_INVALID_FORMAT' ],
+ [ 'invalid-signature.xls', 'ERROR_INVALID_SIGNATURE' ],
+ ];
+ }
+
+ /** @dataProvider provideInvalid */
+ public function testReadFileInvalid( $fileName, $expectedError ) {
+ global $IP;
+
+ $info = MSCompoundFileReader::readFile( "$IP/tests/phpunit/data/MSCompoundFileReader/$fileName" );
+ $this->assertFalse( $info['valid'] );
+ $this->assertSame( constant( MSCompoundFileReader::class . '::' . $expectedError ),
+ $info['errorCode'] );
+ }
+}
$actualType = $this->doGuessMimeType( [ $file, 'mp3' ] );
$this->assertEquals( 'audio/mpeg', $actualType );
}
+
+ /**
+ * A ZIP file embedded in the middle of a .doc file is still a Word Document.
+ */
+ function testZipInDoc() {
+ $file = __DIR__ . '/../../../data/media/zip-in-doc.doc';
+ $actualType = $this->doGuessMimeType( [ $file, 'doc' ] );
+ $this->assertEquals( 'application/msword', $actualType );
+ }
}
}
public function testTrailingBytes() {
- $this->readZipAssertError( 'trail.zip', 'zip-bad',
+ // Due to T40432 this is now zip-wrong-format instead of zip-bad
+ $this->readZipAssertError( 'trail.zip', 'zip-wrong-format',
'Trailing bytes error' );
}