Merge "Optimise checkboxes for Firefox mobile"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 9 Oct 2014 22:37:54 +0000 (22:37 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 9 Oct 2014 22:37:54 +0000 (22:37 +0000)
52 files changed:
CREDITS
RELEASE-NOTES-1.25
includes/GlobalFunctions.php
includes/OutputPage.php
includes/PrefixSearch.php
includes/db/LoadBalancer.php
includes/htmlform/HTMLFormFieldCloner.php
includes/htmlform/HTMLHiddenField.php
includes/installer/DatabaseUpdater.php
includes/installer/i18n/ca.json
includes/installer/i18n/ko.json
includes/objectcache/HashBagOStuff.php
includes/objectcache/MemcachedBagOStuff.php
includes/specials/SpecialBlock.php
includes/specials/SpecialWhatlinkshere.php
languages/i18n/ar.json
languages/i18n/ast.json
languages/i18n/be-tarask.json
languages/i18n/br.json
languages/i18n/ca.json
languages/i18n/fa.json
languages/i18n/gl.json
languages/i18n/he.json
languages/i18n/hu.json
languages/i18n/ja.json
languages/i18n/ko.json
languages/i18n/lrc.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/or.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/sc.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/th.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/showJobs.php
resources/Resources.php
resources/src/mediawiki.api/mediawiki.api.js
resources/src/mediawiki.less/mediawiki.ui/mixins.less
resources/src/mediawiki.ui/components/anchors.less
resources/src/mediawiki.ui/components/buttons.less
resources/src/mediawiki.ui/components/checkbox.less
tests/phpunit/includes/HttpTest.php
tests/phpunit/includes/PrefixSearchTest.php [new file with mode: 0644]
tests/phpunit/includes/installer/DatabaseUpdaterTest.php [new file with mode: 0644]
tests/phpunit/includes/upload/UploadBaseTest.php
tests/phpunit/includes/utils/MWCryptHKDFTest.php
tests/testHelpers.inc

diff --git a/CREDITS b/CREDITS
index dbd5a61..e70a035 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -15,6 +15,7 @@ following names for their contribution to the product.
 * Antoine Musso
 * Arthur Richards
 * Aryeh Gregor
+* Bartosz Dziewoński
 * Bertrand Grondin
 * Brad Jorsch
 * Brian Wolff
@@ -104,7 +105,6 @@ following names for their contribution to the product.
 * Asier Lostalé
 * Azliq7
 * Bagariavivek
-* Bartosz Dziewoński
 * Beau
 * Benny Situ
 * Bergi
index 95ff2d3..862b132 100644 (file)
@@ -58,6 +58,9 @@ changes to languages because of Bugzilla reports.
   since 1.20)
 * Removed 'jquery.json' module. (deprecated since 1.24)
   Use the 'json' module and global JSON object instead.
+* Deprecated OutputPage::readOnlyPage() and OutputPage::rateLimited().
+  Also, the former will now throw an MWException if called with one or more
+  arguments.
 
 == Compatibility ==
 
index 3306acd..2c26fef 100644 (file)
@@ -102,19 +102,30 @@ if ( !function_exists( 'gzdecode' ) ) {
 }
 
 // hash_equals function only exists in PHP >= 5.6.0
+// http://php.net/hash_equals
 if ( !function_exists( 'hash_equals' ) ) {
        /**
-        * Check whether a user-provided string is equal to a fixed-length secret without
-        * revealing bytes of the secret through timing differences.
+        * Check whether a user-provided string is equal to a fixed-length secret string
+        * without revealing bytes of the secret string through timing differences.
         *
-        * This timing guarantee -- that a partial match takes the same time as a complete
-        * mismatch -- is why this function is used in some security-sensitive parts of the code.
-        * For example, it shouldn't be possible to guess an HMAC signature one byte at a time.
+        * The usual way to compare strings (PHP's === operator or the underlying memcmp()
+        * function in C) is to compare corresponding bytes and stop at the first difference,
+        * which would take longer for a partial match than for a complete mismatch. This
+        * is not secure when one of the strings (e.g. an HMAC or token) must remain secret
+        * and the other may come from an attacker. Statistical analysis of timing measurements
+        * over many requests may allow the attacker to guess the string's bytes one at a time
+        * (and check his guesses) even if the timing differences are extremely small.
+        *
+        * When making such a security-sensitive comparison, it is essential that the sequence
+        * in which instructions are executed and memory locations are accessed not depend on
+        * the secret string's value. HOWEVER, for simplicity, we do not attempt to minimize
+        * the inevitable leakage of the string's length. That is generally known anyway as
+        * a chararacteristic of the hash function used to compute the secret value.
         *
         * Longer explanation: http://www.emerose.com/timing-attacks-explained
         *
         * @codeCoverageIgnore
-        * @param string $known_string Fixed-length secret to compare against
+        * @param string $known_string Fixed-length secret string to compare against
         * @param string $user_string User-provided string
         * @return bool True if the strings are the same, false otherwise
         */
@@ -134,14 +145,14 @@ if ( !function_exists( 'hash_equals' ) ) {
                        return false;
                }
 
-               // Note that we do one thing PHP doesn't: try to avoid leaking information about
-               // relative lengths of $known_string and $user_string, and of multiple $known_strings.
-               // However, lengths may still inevitably leak through, for example, CPU cache misses.
                $known_string_len = strlen( $known_string );
-               $user_string_len = strlen( $user_string );
-               $result = $known_string_len ^ $user_string_len;
-               for ( $i = 0; $i < $user_string_len; $i++ ) {
-                       $result |= ord( $known_string[$i % $known_string_len] ) ^ ord( $user_string[$i] );
+               if ( $known_string_len !== strlen( $user_string ) ) {
+                       return false;
+               }
+
+               $result = 0;
+               for ( $i = 0; $i < $known_string_len; $i++ ) {
+                       $result |= ord( $known_string[$i] ) ^ ord( $user_string[$i] );
                }
 
                return ( $result === 0 );
@@ -2975,7 +2986,9 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
  * function, as all the arguments to wfShellExec can become unwieldy.
  *
  * @note This also includes errors from limit.sh, e.g. if $wgMaxShellFileSize is exceeded.
- * @param string $cmd Command line, properly escaped for shell.
+ * @param string|string[] $cmd If string, a properly shell-escaped command line,
+ *   or an array of unescaped arguments, in which case each value will be escaped
+ *   Example:   [ 'convert', '-font', 'font name' ] would produce "'convert' '-font' 'font name'"
  * @param null|mixed &$retval Optional, will receive the program's exit code.
  *   (non-zero is usually failure)
  * @param array $environ Optional environment variables which should be
index 3ff0d37..34d3ce6 100644 (file)
@@ -2414,90 +2414,32 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * Display a page stating that the Wiki is in read-only mode,
-        * and optionally show the source of the page that the user
-        * was trying to edit.  Should only be called (for this
-        * purpose) after wfReadOnly() has returned true.
-        *
-        * For historical reasons, this function is _also_ used to
-        * show the error message when a user tries to edit a page
-        * they are not allowed to edit.  (Unless it's because they're
-        * blocked, then we show blockedPage() instead.)  In this
-        * case, the second parameter should be set to true and a list
-        * of reasons supplied as the third parameter.
-        *
-        * @todo Needs to be split into multiple functions.
-        *
-        * @param string $source Source code to show (or null).
-        * @param bool $protected Is this a permissions error?
-        * @param array $reasons List of reasons for this error, as returned by
-        *   Title::getUserPermissionsErrors().
-        * @param string $action Action that was denied or null if unknown
+        * Display a page stating that the Wiki is in read-only mode.
+        * Should only be called after wfReadOnly() has returned true.
+        *
+        * Historically, this function was used to show the source of the page that the user
+        * was trying to edit and _also_ permissions error messages. The relevant code was
+        * moved into EditPage in 1.19 (r102024 / d83c2a431c2a) and removed here in 1.25.
+        *
+        * @deprecated since 1.25; throw the exception directly
         * @throws ReadOnlyError
         */
-       public function readOnlyPage( $source = null, $protected = false,
-               array $reasons = array(), $action = null
-       ) {
-               $this->setRobotPolicy( 'noindex,nofollow' );
-               $this->setArticleRelated( false );
-
-               // If no reason is given, just supply a default "I can't let you do
-               // that, Dave" message.  Should only occur if called by legacy code.
-               if ( $protected && empty( $reasons ) ) {
-                       $reasons[] = array( 'badaccess-group0' );
-               }
-
-               if ( !empty( $reasons ) ) {
-                       // Permissions error
-                       if ( $source ) {
-                               $this->setPageTitle( $this->msg( 'viewsource-title', $this->getTitle()->getPrefixedText() ) );
-                               $this->addBacklinkSubtitle( $this->getTitle() );
-                       } else {
-                               $this->setPageTitle( $this->msg( 'badaccess' ) );
-                       }
-                       $this->addWikiText( $this->formatPermissionsErrorMessage( $reasons, $action ) );
-               } else {
-                       // Wiki is read only
-                       throw new ReadOnlyError;
-               }
-
-               // Show source, if supplied
-               if ( is_string( $source ) ) {
-                       $this->addWikiMsg( 'viewsourcetext' );
-
-                       $pageLang = $this->getTitle()->getPageLanguage();
-                       $params = array(
-                               'id' => 'wpTextbox1',
-                               'name' => 'wpTextbox1',
-                               'cols' => $this->getUser()->getOption( 'cols' ),
-                               'rows' => $this->getUser()->getOption( 'rows' ),
-                               'readonly' => 'readonly',
-                               'lang' => $pageLang->getHtmlCode(),
-                               'dir' => $pageLang->getDir(),
-                       );
-                       $this->addHTML( Html::element( 'textarea', $params, $source ) );
-
-                       // Show templates used by this article
-                       $templates = Linker::formatTemplates( $this->getTitle()->getTemplateLinksFrom() );
-                       $this->addHTML( "<div class='templatesUsed'>
-$templates
-</div>
-" );
+       public function readOnlyPage() {
+               if ( func_num_args() > 0 ) {
+                       throw new MWException( __METHOD__ . ' no longer accepts arguments since 1.25.' );
                }
 
-               # If the title doesn't exist, it's fairly pointless to print a return
-               # link to it.  After all, you just tried editing it and couldn't, so
-               # what's there to do there?
-               if ( $this->getTitle()->exists() ) {
-                       $this->returnToMain( null, $this->getTitle() );
-               }
+               throw new ReadOnlyError;
        }
 
        /**
         * Turn off regular page output and return an error response
         * for when rate limiting has triggered.
+        *
+        * @deprecated since 1.25; throw the exception directly
         */
        public function rateLimited() {
+               wfDeprecated( __METHOD__, '1.25' );
                throw new ThrottledError;
        }
 
index 1f684fb..36196f2 100644 (file)
@@ -63,8 +63,7 @@ abstract class PrefixSearch {
                        if ( $ns[0] == NS_MAIN ) {
                                $ns = $namespaces; // no explicit prefix, use default namespaces
                        }
-                       return $this->searchBackend(
-                               $ns, $title->getText(), $limit );
+                       return $this->searchBackend( $ns, $title->getText(), $limit );
                }
 
                // Is this a namespace prefix?
index 9797f29..186915c 100644 (file)
@@ -315,20 +315,6 @@ class LoadBalancer {
                return $i;
        }
 
-       /**
-        * Wait for a specified number of microseconds, and return the period waited
-        * @param int $t
-        * @return int
-        */
-       function sleep( $t ) {
-               wfProfileIn( __METHOD__ );
-               wfDebug( __METHOD__ . ": waiting $t us\n" );
-               usleep( $t );
-               wfProfileOut( __METHOD__ );
-
-               return $t;
-       }
-
        /**
         * Set the master wait position
         * If a DB_SLAVE connection has been opened already, waits
index 029911c..5dadaf8 100644 (file)
@@ -276,6 +276,7 @@ class HTMLFormFieldCloner extends HTMLFormField {
                }
 
                $html = '';
+               $hidden = '';
                $hasLabel = false;
 
                $fields = $this->createFieldsForKey( $key );
@@ -283,11 +284,18 @@ class HTMLFormFieldCloner extends HTMLFormField {
                        $v = ( empty( $field->mParams['nodata'] ) && $values !== null )
                                ? $values[$fieldname]
                                : $field->getDefault();
-                       $html .= $field->$getFieldHtmlMethod( $v );
 
-                       $labelValue = trim( $field->getLabel() );
-                       if ( $labelValue != '&#160;' && $labelValue !== '' ) {
-                               $hasLabel = true;
+                       if ( $field instanceof HTMLHiddenField ) {
+                               // HTMLHiddenField doesn't generate its own HTML
+                               list( $name, $value, $params ) = $field->getHiddenFieldData( $v );
+                               $hidden .= Html::hidden( $name, $value, $params ) . "\n";
+                       } else {
+                               $html .= $field->$getFieldHtmlMethod( $v );
+
+                               $labelValue = trim( $field->getLabel() );
+                               if ( $labelValue != '&#160;' && $labelValue !== '' ) {
+                                       $hasLabel = true;
+                               }
                        }
                }
 
@@ -335,6 +343,8 @@ class HTMLFormFieldCloner extends HTMLFormField {
                        }
                }
 
+               $html .= $hidden;
+
                if ( !empty( $this->mParams['row-legend'] ) ) {
                        $legend = $this->msg( $this->mParams['row-legend'] )->text();
                        $html = Xml::fieldset( $legend, $html );
index e32c0bb..ffde915 100644 (file)
@@ -1,22 +1,36 @@
 <?php
 
 class HTMLHiddenField extends HTMLFormField {
+       protected $outputAsDefault = true;
+
        public function __construct( $params ) {
                parent::__construct( $params );
 
+               if ( isset( $this->mParams['output-as-default'] ) ) {
+                       $this->outputAsDefault = (bool)$this->mParams['output-as-default'];
+               }
+
                # Per HTML5 spec, hidden fields cannot be 'required'
                # http://www.w3.org/TR/html5/forms.html#hidden-state-%28type=hidden%29
                unset( $this->mParams['required'] );
        }
 
-       public function getTableRow( $value ) {
+       public function getHiddenFieldData( $value ) {
                $params = array();
                if ( $this->mID ) {
                        $params['id'] = $this->mID;
                }
 
-               $this->mParent->addHiddenField( $this->mName, $this->mDefault, $params );
+               if ( $this->outputAsDefault ) {
+                       $value = $this->mDefault;
+               }
+
+               return array( $this->mName, $value, $params );
+       }
 
+       public function getTableRow( $value ) {
+               list( $name, $value, $params ) = $this->getHiddenFieldData( $value );
+               $this->mParent->addHiddenField( $name, $value, $params );
                return '';
        }
 
index 193d592..6e0c37f 100644 (file)
@@ -31,6 +31,7 @@ require_once __DIR__ . '/../../maintenance/Maintenance.php';
  * @since 1.17
  */
 abstract class DatabaseUpdater {
+       protected static $updateCounter = 0;
 
        /**
         * Array of updates to perform on the database
@@ -460,7 +461,8 @@ abstract class DatabaseUpdater {
                if ( !$this->canUseNewUpdatelog() ) {
                        return;
                }
-               $key = "updatelist-$version-" . time();
+               $key = "updatelist-$version-" . time() . self::$updateCounter;
+               self::$updateCounter++;
                $this->db->insert( 'updatelog',
                        array( 'ul_key' => $key, 'ul_value' => serialize( $updates ) ),
                        __METHOD__ );
index 9f84215..e0c985b 100644 (file)
@@ -5,7 +5,8 @@
                        "පසිඳු කාවින්ද",
                        "Kippelboy",
                        "Toniher",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Jmarchn"
                ]
        },
        "config-desc": "L'instal·lador del MediaWiki",
@@ -19,6 +20,8 @@
        "config-localsettings-incomplete": "El <code>LocalSettings.php</code> que hi ha sembla incomplet.\nLa variable $1 no està definida.\nCanvieu <code>LocalSettings.php</code> perquè la variable estigui definida i feu clic a «{{int:Config-continue}}».",
        "config-localsettings-connection-error": "S'ha trobat un error en connectar-se amb la base de dades fent servir els paràmetres especificats a <code>LocalSettings.php</code>. Corregiu aquests paràmetres i torneu-ho a provar.\n\n$1",
        "config-session-error": "Error en iniciar la sessió: $1",
+       "config-session-expired": "Les dades de la vostra sessió sembla que han caducat.\nLes sessions estan configurades per a un temps de $1.\nPodeu augmentar-lo posant <code>session.gc_maxlifetime</code> en php.ini.\nReprengueu el procés d'instal·lació.",
+       "config-no-session": "Les dades de la vostra sessió s'han perdut!\nComprovar el vostre php.ini i assegureu-vos que <code>session.save_path</code> està assignat a un directori apropiat.",
        "config-your-language": "La vostra llengua:",
        "config-your-language-help": "Seleccioneu la llengua que s'utilitzarà durant el procés d'instal·lació.",
        "config-wiki-language": "Llengua del wiki:",
@@ -43,6 +46,8 @@
        "config-help-restart": "Voleu esborrar totes les dades que heu introduït i tornar a començar el procés d'instal·lació?",
        "config-restart": "Sí, torna a començar",
        "config-welcome": "=== Comprovacions de l'entorn ===\nS'efectuaran comprovacions bàsiques per veure si l'entorn és adequat per a la instal·lació del MediaWiki.\nRecordeu d'incloure aquesta informació si heu de demanar ajuda sobre com completar la instal·lació.",
+       "config-copyright": "=== Drets d'autor i condicions ===\n\n$1\n\nAquest programa és de programari lliure; podeu redistribuir-lo i/o modificar-lo sota les condicions de la Llicència Pública General GNU com es publicada per la Free Software Foundation; qualsevol versió 2 de la llicència, o (opcionalment) qualsevol versió posterior.\n\nAquest programa és distribueix amb l'esperança que serà útil, però <strong>sense cap garantia</strong>; sense ni tan sols la garantia implícita de <strong>\ncomerciabilitat</strong> o <strong>idoneïtat per a un propòsit particular</strong>.\nConsulteu la Llicència Pública General GNU, per a més detalls.\n\nHauríeu d'haver rebut <doclink href=\"Copying\">una còpia de la Llicència Pública General GNU</doclink> amb aquest programa; si no, escriviu a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA o [http://www.gnu.org/copyleft/gpl.html per llegir-lo en línia].",
+       "config-sidebar": "* [//www.mediawiki.org la Pàgina d'inici]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guia de l'Usuari]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guia de l'Administrador]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Llegeix-me</doclink>\n* <doclink href=ReleaseNotes>Notes de la versió</doclink>\n* <doclink href=Còpia>Còpia</doclink>\n* <doclink href=UpgradeDoc>Actualització</doclink>",
        "config-env-good": "S'ha comprovat l'entorn.\nPodeu instal·lar el MediaWiki.",
        "config-env-bad": "S'ha comprovat l'entorn.\nNo podeu instal·lar el MediaWiki.",
        "config-env-php": "El PHP $1 està instal·lat.",
        "config-profile-private": "Wiki privat",
        "config-license": "Copyright i llicència:",
        "config-license-none": "Sense llicència al peu de pàgina",
+       "config-license-cc-by-sa": "Creative Commons Reconeixement-CompartirIgual",
+       "config-license-cc-by": "Creative Commons Reconeixement",
+       "config-license-cc-by-nc-sa": "Creative Commons Reconeixement-NoComercial-CompartirIgual",
+       "config-license-cc-0": "Creative Commons Zero (Domini Públic)",
+       "config-license-gfdl": "GNU Free Documentation License 1.3 o posterior",
        "config-license-pd": "Domini públic",
+       "config-license-cc-choose": "Selecció d'una llicència personalitzada de Creative Commons",
        "config-email-settings": "Paràmetres del correu electrònic",
        "config-email-user": "Habilita el correu electrònic usuari-a-usuari",
        "config-email-user-help": "Permet que tots els usuaris puguin enviar-se correu si ho han habilitat a les preferències.",
index bc828a5..cae6aa1 100644 (file)
@@ -5,17 +5,18 @@
                        "아라",
                        "Hym411",
                        "Priviet",
-                       "Namoroka"
+                       "Namoroka",
+                       "Revi"
                ]
        },
        "config-desc": "미디어위키 설치 프로그램",
        "config-title": "미디어위키 $1 설치",
        "config-information": "정보",
-       "config-localsettings-upgrade": "<code>LocalSettings.php</code> 파일을 감지했습니다.\n이 설치를 업그레이드하려면 아래 상자에 <code>$wgUpgradeKey</code>의 값을 입력하세요.\n<code>LocalSettings.php</code>에서 찾을 수 있습니다.",
+       "config-localsettings-upgrade": "<code>LocalSettings.php</code> 파일을 감지했습니다.\n이 설치를 업그레이드하려면, 아래 상자에 <code>$wgUpgradeKey</code>의 값을 입력하세요.\n<code>LocalSettings.php</code>에서 찾을 수 있습니다.",
        "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> 파일을 감지했습니다.\n이 설치를 업그레이드하려면 <code>update.php</code>를 대신 실행하세요",
        "config-localsettings-key": "업그레이드 키:",
-       "config-localsettings-badkey": "ì\9e\85ë ¥한 키가 잘못되었습니다.",
-       "config-upgrade-key-missing": "기존에 설치 했던 미디어위키를 감지했습니다.\n이 설치를 업그레이드하려면 <code>LocalSettings.php</code>의 아래에 다음 줄을 넣으세요:\n\n$1",
+       "config-localsettings-badkey": "ì \9cê³µ한 키가 잘못되었습니다.",
+       "config-upgrade-key-missing": "미디어위키의 기존 설치를 감지했습니다.\n이 설치를 업그레이드하려면, <code>LocalSettings.php</code>의 아래에 다음 줄을 넣으세요:\n\n$1",
        "config-localsettings-incomplete": "기존 <code>LocalSettings.php</code>가 완전하지 않은 것 같습니다.\n$1 변수가 설정되어 있지 않습니다.\n이 변수가 설정되도록 <code>LocalSettings.php</code>를 바꾸고 \"{{int:Config-continue}}\"을 클릭하세요.",
        "config-localsettings-connection-error": "<code>LocalSettings.php</code>에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 고치고 다시 시도하세요.\n\n$1",
        "config-session-error": "세션 시작 오류: $1",
        "config-help-restart": "입력한 모든 저장된 데이터를 지우고 설치 과정을 다시 시작하겠습니까?",
        "config-restart": "예, 다시 시작합니다",
        "config-welcome": "=== 사용 환경 검사 ===\n기본 검사는 지금 이 환경이 미디어위키 설치에 적합한지 수행합니다.\n설치를 완료하는 방법에 대한 지원을 찾는다면 이 정보를 포함해야 하는 것을 기억하세요.",
-       "config-copyright": "=== ì \80ì\9e\91ê¶\8c ë°\8f ì\9d´ì\9a© ì\95½ê´\80 ===\n\n$1\n\nì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d\80 ì\9e\90ì\9c  ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ì\9e\85ë\8b\88ë\8b¤. ë\8b¹ì\8b ì\9d\80 ì\9e\90ì\9c  ì\86\8cí\94\84í\8a¸ì\9b¨ì\96´ ì\9e¬ë\8b¨ì\9d´ ë°\9cí\91\9cí\95\9c GNU ì\9d¼ë°\98 ê³µì¤\91 ì\82¬ì\9a© í\97\88ê°\80ì\84\9c ë²\84ì \84 2ë\82\98 ê·¸ ì\9d´í\9b\84 ë²\84ì \84ì\97\90 ë\94°ë\9d¼ ì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d\84 ì\9e¬ë°°í\8f¬í\95\98ê±°ë\82\98 ì\88\98ì \95í\95  ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.\n\nì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d´ ì\9c ì\9a©í\95\98ê²\8c ì\82¬ì\9a©ë\90  ì\88\98 ì\9e\88기를 ë°\94ë\9d¼ì§\80ë§\8c '''ì\83\81ì\9a©ì\9c¼ë¡\9c ì\82¬ì\9a©'''ë\90\98ê±°ë\82\98 '''í\8a¹ì \95 ëª©ì \81ì\97\90 ë§\9eì\9d\84 ê²\83'''ì\9d´ë\9d¼ë\8a\94 ê²\83ì\9d\84 '''ë³´ì¦\9dí\95\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤'''.\nì\9e\90ì\84¸í\95\9c ë\82´ì\9a©ì\9d\80 GNU ì\9d¼ë°\98 ê³µì¤\91 ì\82¬ì\9a© í\97\88ê°\80ì\84\9c를 ì°¸ê³ í\95\98ì\8b­ì\8b\9cì\98¤.\n\në\8b¹ì\8b ì\9d\80 ì\9d´ í\94\84ë¡\9cê·¸ë\9e¨ì\9d\84 í\86µí\95´ <doclink href=Copying>GNU ì\9d¼ë°\98 ê³µì¤\91 ì\82¬ì\9a© í\97\88ê°\80ì\84\9c ì \84문</doclink>ì\9d\84 ë°\9bì\95\98ì\8aµë\8b\88ë\8b¤. ê·¸ë \87ì§\80 ì\95\8aë\8b¤ë©´, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USAë¡\9c í\8e¸ì§\80를 ë³´ë\82´ì£¼ì\8b\9cê±°ë\82\98 [http://www.gnu.org/copyleft/gpl.html ì\98¨ë\9d¼ì\9d¸ì\9c¼ë¡\9c ì\9d½ì\96´ë³´ì\8b\9c기] ë°\94ë\9e\8dë\8b\88ë\8b¤.",
+       "config-copyright": "=== 저작권 및 약관 ===\n\n$1\n\n이 프로그램은 자유 소프트웨어입니다. 당신은 자유 소프트웨어 재단이 발표한 GNU 일반 공중 사용 허가서 버전 2나 그 이후 버전에 따라 이 프로그램을 재배포하거나 수정할 수 있습니다.\n\n이 프로그램이 유용하게 사용될 수 있기를 바라지만 '''상용으로 사용'''되거나 '''특정 목적에 맞을 것'''이라는 것을 '''보증하지 않습니다'''.\n자세한 내용은 GNU 일반 공중 사용 허가서를 참고하십시오.\n\n당신은 이 프로그램을 통해 <doclink href=Copying>GNU 일반 공중 사용 허가서 전문</doclink>을 받았습니다. 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [http://www.gnu.org/copyleft/gpl.html 온라인으로 읽어보시기] 바랍니다.",
        "config-sidebar": "* [//www.mediawiki.org 미디어위키 홈]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 사용자 가이드]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents 관리자 가이드]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>읽어보기</doclink>\n* <doclink href=ReleaseNotes>릴리스 노트</doclink>\n* <doclink href=Copying>전문</doclink>\n* <doclink href=UpgradeDoc>업그레이드하기</doclink>",
        "config-env-good": "환경이 확인되었습니다.\n미디어위키를 설치할 수 있습니다.",
        "config-env-bad": "환경이 확인되었습니다.\n미디어위키를 설치할 수 없습니다.",
-       "config-env-php": "PHP $1(이)가 설치되었습니다.",
+       "config-env-php": "PHP $1이(가) 설치되어 있습니다.",
+       "config-env-hhvm": "HHMV $1이(가) 설치되어 있습니다.",
        "config-unicode-using-utf8": "유니코드 정규화에 Brion Vibber의 utf8_normalize.so를 사용합니다.",
        "config-unicode-using-intl": "유니코드 정규화에 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.",
-       "config-unicode-pure-php-warning": "'''경고''': 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보시기 바랍니다.",
-       "config-unicode-update-warning": "'''경고''': 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
+       "config-unicode-pure-php-warning": "<strong>경고</strong>: 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
+       "config-unicode-update-warning": "<strong>경고</strong>: 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
        "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 유형을 지원합니다: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysql</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 모듈도 설치해야 합니다.",
-       "config-outdated-sqlite": "'''경고''': 최소인 $2 버전보다 낮은 SQLite $1(이)가 있습니다. SQLite를 사용할 수 없습니다.",
-       "config-no-fts3": "'''경고''': SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
+       "config-outdated-sqlite": "<strong>경고</strong>: 최소인 $2 버전보다 낮은 SQLite $1(이)가 있습니다. SQLite를 사용할 수 없습니다.",
+       "config-no-fts3": "<strong>경고</strong>: SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
        "config-register-globals-error": "<strong>오류: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.\n설치를 계속하려면 비활성화해야 합니다.</strong>\n어떻게 하는지에 대한 도움말에 대해서는 [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals]를 보세요.",
-       "config-magic-quotes-runtime": "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성화됩니다!'''\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       "config-magic-quotes-sybase": "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성화됩니다!'''\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상을 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       "config-mbstring": "'''치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성화됩니다!'''\n이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상을 일으킬 수 있습니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       "config-safe-mode": "'''경고:''' [http://www.php.net/features.safe-mode 안전 모드]가 활성화됩니다!\n특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
+       "config-magic-quotes-gpc": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상을 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-magic-quotes-runtime": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-magic-quotes-sybase": "<strong>치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성화되어 있습니다!</strong>\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상을 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-mbstring": "<strong>치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성화되어 있습니다!</strong>\n이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상을 일으킬 수 있습니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+       "config-safe-mode": "<strong>경고:</strong> PHP의 [http://www.php.net/features.safe-mode 안전 모드]가 활성화되어 있습니다!\n특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
        "config-xml-bad": "PHP의 XML 모듈이 없습니다.\n미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.\nMandrake를 실행하고 있다면 php-xml 패키지를 설치하세요.",
-       "config-pcre-old": "'''치명적인 오류:''' PCRE $1 또는 이후의 것들이 필요합니다. 당신의 PHP 바이너리는 PCRE $2와 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 더 많은 정보].",
-       "config-pcre-no-utf8": "'''치명''': PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 제대로 작동하려면 UTF-8을 지원해야 합니다.",
+       "config-pcre-old": "<strong>치명:</strong> PCRE $1 또는 그 이상이 필요합니다.\nPHP 바이너리는 PCRE $2에 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 자세한 정보].",
+       "config-pcre-no-utf8": "<strong>치명:</strong> PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 올바르게 작동하려면 UTF-8을 지원해야 합니다.",
        "config-memory-raised": "PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘렸습니다.",
        "config-memory-bad": "'''경고:''' PHP의 <code>memory_limit</code>는 $1입니다.\n아마도 너무 낮은 것 같습니다.\n설치가 실패할 수 있습니다!",
        "config-ctype": "'''치명''': PHP는 [http://www.php.net/manual/en/ctype.installation.php Ctype 확장 기능]을 지원하도록 하여 컴파일해야 합니다.",
+       "config-iconv": "<strong>치명</strong>: PHP는 [http://www.php.net/manual/en/iconv.installation.php iconv 확장 기능]을 지원하도록 하여 컴파일해야 합니다.",
        "config-json": "'''치명:''' PHP가 JSON 지원이 없이 컴파일되었습니다.\n미디어위키를 설치하기 전에 PHP JSON 확장 기능이나 [http://pecl.php.net/package/jsonc PECL jsonc] 확장 기능 중 하나를 설치해야 합니다.\n* PHP 확장 기능은 Red Hat Enterprise Linux (CentOS) 5와 6에 포함되어 있지만, <code>/etc/php.ini</code>나 <code>/etc/php.d/json.ini</code>에서 활성화해야 합니다.\n* 2013년 5월 이후에 출시된 일부 리눅스 배포판은 PHP 확장 기능이 생략된 대신, <code>php5-json</code>이나 <code>php-pecl-jsonc</code>로 PECL 확장 기능이 포장되어 있습니다.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache]가 설치되었습니다",
        "config-apc": "[http://www.php.net/apc APC]가 설치되었습니다",
        "config-extensions": "확장 기능",
        "config-extensions-help": "위에 나열된 확장 기능이 <code>./extensions</code>에서 발견되었습니다.\n\n추가적인 설정이 필요할 수 있습니다만 지금 활성화시킬 수 있습니다.",
        "config-skins": "스킨",
+       "config-skins-help": "위에 나열된 스킨이 <code>./skins</code> 디렉터리에서 감지되었습니다. 적어도 하나를 활성화하고 나서, 기본값을 선택해야 합니다.",
        "config-skins-use-as-default": "이 스킨을 기본값으로 사용",
+       "config-skins-missing": "스킨을 찾을 수 없습니다; 미디어위키는 당신이 적절한 스킨을 설치할 때까지 대체 스킨을 사용합니다.",
        "config-skins-must-enable-some": "적어도 활성화활 스킨 하나를 선택해야 합니다.",
        "config-skins-must-enable-default": "기본값으로 설정한 스킨은 반드시 활성화해야 합니다.",
        "config-install-alreadydone": "'''경고:''' 이미 미디어위키를 설치했고 다시 설치하려고 합니다.\n다음 페이지로 진행하세요.",
        "config-install-stats": "통계를 초기화하는 중",
        "config-install-keys": "보안 키를 만드는 중",
        "config-insecure-keys": "'''경고:''' 설치 중에 생성한 {{PLURAL:$2|보안 키}} ($1)는 완전히 안전하지 {{PLURAL:$2|않습니다}}. 직접 바꾸는 것을 고려하세요.",
+       "config-install-updates": "불필요한 업데이트 실행 방지",
+       "config-install-updates-failed": "<strong>오류:</strong> 다음 오류로 테이블 안에 업데이트 키를 넣기에 실패했습니다: $1",
        "config-install-sysop": "관리자 사용자 계정을 만드는 중",
        "config-install-subscribe-fail": "미디어위키 알림을 구독할 수 없습니다: $1",
        "config-install-subscribe-notpossible": "cURL이 설치되어 있지 않고 <code>allow_url_fopen</code>을 사용할 수 없습니다.",
index 6e50a8c..06a0865 100644 (file)
@@ -65,7 +65,7 @@ class HashBagOStuff extends BagOStuff {
                        return false;
                }
 
-               $casToken = serialize( $this->bag[$key][0] );
+               $casToken = $this->bag[$key][0];
 
                return $this->bag[$key][0];
        }
@@ -89,7 +89,7 @@ class HashBagOStuff extends BagOStuff {
         * @return bool
         */
        function cas( $casToken, $key, $value, $exptime = 0 ) {
-               if ( serialize( $this->get( $key ) ) === $casToken ) {
+               if ( $this->get( $key ) === $casToken ) {
                        return $this->set( $key, $value, $exptime );
                }
 
index 53edcdd..0e133a8 100644 (file)
@@ -145,7 +145,7 @@ class MemcachedBagOStuff extends BagOStuff {
         * TTLs higher than 30 days will be detected as absolute TTLs
         * (UNIX timestamps), and will result in the cache entry being
         * discarded immediately because the expiry is in the past.
-        * Clamp expiries >30d at 30d, unless they're >=1e9 in which
+        * Clamp expires >30d at 30d, unless they're >=1e9 in which
         * case they are likely to really be absolute (1e9 = 2011-09-09)
         * @param int $expiry
         * @return int
index 3297c17..cf82b86 100644 (file)
@@ -98,6 +98,7 @@ class SpecialBlock extends FormSpecialPage {
                $form->setWrapperLegendMsg( 'blockip-legend' );
                $form->setHeaderText( '' );
                $form->setSubmitCallback( array( __CLASS__, 'processUIForm' ) );
+               $form->setSubmitDestructive();
 
                $msg = $this->alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit';
                $form->setSubmitTextMsg( $msg );
index 7dc6da1..e373cff 100644 (file)
@@ -431,9 +431,9 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
 
                $f .= Xml::fieldset( $this->msg( 'whatlinkshere' )->text() );
 
-               # Target input
+               # Target input (.mw-searchInput enables suggestions)
                $f .= Xml::inputLabel( $this->msg( 'whatlinkshere-page' )->text(), 'target',
-                       'mw-whatlinkshere-target', 40, $target );
+                       'mw-whatlinkshere-target', 40, $target, array( 'class' => 'mw-searchInput' ) );
 
                $f .= ' ';
 
index 4e86dcc..dbd42d4 100644 (file)
        "searchall": "الكل",
        "showingresults": "معروض بالأسفل {{PLURAL:$1|'''1''' نتيجة|'''$1''' نتيجة}} بدءا من رقم '''$2'''.",
        "showingresultsinrange": "بالأسفل {{PLURAL:$1|نتيجة واحدة|<strong>$1</strong> نتائج|<strong>$1</strong> نتيجة}} في النطاق من <strong>$2</strong> إلى <strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|النتائج <strong>$1</strong> من <strong>$3</strong>|النتائج <strong>$1 - $2</strong> من أصل <strong>$3</strong>}}",
        "search-nonefound": "لا توجد نتائج تطابق الاستعلام.",
        "powersearch-legend": "بحث متقدم",
        "powersearch-ns": "بحث في النطاقات:",
index ce2c3c2..a7dea89 100644 (file)
        "otherlanguages": "N'otres llingües",
        "redirectedfrom": "(Redirixío dende $1)",
        "redirectpagesub": "Páxina de redireición",
+       "redirectto": "Redirixe a:",
        "lastmodifiedat": "L'últimu cambiu d'esta páxina foi el $1, a les $2.",
        "viewcount": "Esta páxina visitóse {{PLURAL:$1|una vegada|$1 vegaes}}.",
        "protectedpage": "Páxina protexida",
        "createaccount-text": "Daquién creó una cuenta cola to direición de corréu electrónicu en {{SITENAME}} ($4) col nome «$2», y cola contraseña «$3».\nAgora tendríes d'aniciar sesión y camudar la contraseña.\n\nPues escaecer esti mensaxe si esta cuenta creóse por error.",
        "login-throttled": "Ficisti demasiaos intentos d'aniciu de sesión recientes.\nPor favor espera $1 enantes d'intentalo otra vuelta.",
        "login-abort-generic": "Falló la identificación - Encaboxao",
+       "login-migrated-generic": "La to cuenta migróse ya'l to nome d'usuariu yá nun esiste nesta wiki.",
        "loginlanguagelabel": "Llingua: $1",
        "suspicious-userlogout": "La to solicitú de zarrar sesión refugose porque paez qu'unvióla un restolador frañíu o un proxy de caché.",
        "createacct-another-realname-tip": "El nome real ye opcional.\nSi decide conseñalu, va usase p'atribuir el trabayu al usuariu.",
        "showpreview": "Amosar previsualización",
        "showdiff": "Amosar cambeos",
        "blankarticle": "<strong>Atención:</strong> La páxina que tas a piques de crear ta balera.\nSi vuelves a facer click en «{{int:savearticle}}», crearáse la páxina ensin conteníu dengún.",
-       "anoneditwarning": "<strong>Avisu:</strong> Nun anició sesión.\nLa direición IP quedará grabada nel historial d'edición d'esta páxina.",
+       "anoneditwarning": "<strong>Avisu:</strong> Nun aniciasti sesión. La direición IP sedrá visible en público si faes dalguna edición. Si <strong>[$1 anicies sesión]</strong> o <strong>[$2 crees una cuenta]</strong>, les ediciones atribuiránse al to nome d'usuariu, xunto con otros beneficios.",
        "anonpreviewwarning": "''Nun aniciasti sesión. Al guardar quedará rexistrada la to direición IP nel historial d'edición d'esta páxina.''",
        "missingsummary": "'''Recordatoriu:''' Nun conseñasti un resume d'edición.\nSi calques nuevamente \"{{int:savearticle}}\", la to edición guardaráse ensin nengún resume.",
        "missingcommenttext": "Por favor, escribi un comentariu abaxo.",
        "searchall": "toos",
        "showingresults": "Abaxo {{PLURAL:$1|amuésase '''un''' resultáu|amuésense '''$1''' resultaos}}, entamando col #'''$2'''.",
        "showingresultsinrange": "Más abaxo s'{{PLURAL:$1|amuesa|amuesen}} fasta {{PLURAL:$1|<strong>1</strong> resultáu|<strong>$1</strong> resultaos}} nel rangu ente #<strong>$2</strong> y #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Resultáu <strong>$1</strong> de <strong>$3</strong>|Resultaos <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "Nun hebo resultaos que casaren cola consulta.",
        "powersearch-legend": "Busca avanzada",
        "powersearch-ns": "Buscar nos espacios de nome:",
        "prefs-tokenwatchlist": "Pase",
        "prefs-diffs": "Diferencies",
        "prefs-help-prefershttps": "Esta preferencia aplicaráse nel siguiente aniciu de sesión.",
+       "prefswarning-warning": "Ficisti cambios nes tos preferencies qu'inda nun se guardaron.\nSi abandones esta páxina ensin calcar \"$1\" les preferencies nun s'anovarán.",
        "prefs-tabs-navigation-hint": "Gabitu: pue usar les tecles de flecha izquierda y drecha pa navegar peles llingüetes de la llista.",
        "email-address-validity-valid": "La direición de corréu paez válida",
        "email-address-validity-invalid": "Escribi una direición de corréu válida",
        "querypage-disabled": "Esta páxina especial ta desactivada por razones de rindimientu.",
        "booksources": "Fontes de llibros",
        "booksources-search-legend": "Busca de fontes de llibros",
+       "booksources-search": "Buscar",
        "booksources-text": "Esta ye una llista d'enllaces a otros sitios que vienden llibros nuevos y usaos, y que puen tener más información sobre los llibros que ta buscando:",
        "booksources-invalid-isbn": "El códigu ISBN que puxisti nun paez que valga; mira que te vien copiáu de la fonte orixinal.",
        "specialloguserlabel": "Fecho por:",
        "wlheader-enotif": "La notificación per corréu electrónicu ta activada.",
        "wlheader-showupdated": "Les páxines que camudaron dende que les visitasti anteriormente amuesense en '''negrina'''",
        "wlnote": "Abaxo {{PLURAL:$1|tá'l caberu cambiu|tan los caberos <strong>$1</strong> cambios}} {{PLURAL:$2|na cabera hora|nes caberes <strong>$2</strong> hores}}, a día $3, a les $4.",
-       "wlshowlast": "Amosar les últimes $1 hores $2 díes",
+       "wlshowlast": "Amosar les últimes $1 hores, los últimos $2 díes",
        "watchlist-options": "Opciones de la llista de siguimientu",
        "watching": "Vixilando...",
        "unwatching": "Dexando de vixilar...",
        "protect-othertime": "Otru periodu:",
        "protect-othertime-op": "otru periodu",
        "protect-existing-expiry": "Caducidá actual: $2, $3",
+       "protect-existing-expiry-infinity": "Tiempu de caducidá esistente: infinitu",
        "protect-otherreason": "Motivu distintu/adicional:",
        "protect-otherreason-op": "Otru motivu",
        "protect-dropdown": "*Motivos comunes de proteición\n** Vandalismu escomanáu\n** Spamming escesivu\n** Guerra d'ediciones contraproducente\n** Páxina de tráficu altu",
        "unblocked": "[[User:$1|$1]] desbloquióse.",
        "unblocked-range": "$1 se desbloquió",
        "unblocked-id": "Desaniciose'l bloquéu $1.",
+       "unblocked-ip": "Desbloquióse a [[Special:Contributions/$1|$1]].",
        "blocklist": "Usuarios bloquiaos",
        "ipblocklist": "Usuarios bloquiaos",
        "ipblocklist-legend": "Atopar un usuariu bloquiáu",
        "log-name-pagelang": "Rexistru de cambios de llingua",
        "log-description-pagelang": "Esti ye un rexistru de los cambios de llingua de les páxines.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} la llingua de la páxina $3 del $4 al $5.",
-       "default-skin-not-found": "¡Coime! L'aspeutu predetermináu pa la to wiki (<code>$wgDefaultSkin</code>), <code>$1</code> nun ta disponible.\n\nLa to instalación paez qu'incluye los siguientes aspeutos. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activalos y escoyer el predetermináu.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code>skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar les llinies siguientes en <code>LocalSettings.php</code> p'activar tolos aspeutos instalaos actualmente:\n\n<pre>$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
-       "default-skin-not-found-no-skins": "¡Coime! L'aspeutu predetermináu pa la to wiki (<code>$wgDefaultSkin</code>), <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code>skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
+       "default-skin-not-found": "L'aspeutu predetermináu pa la to wiki, definíu en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nLa to instalación paez qu'incluye los siguientes aspeutos. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activalos y escoyer el predetermináu.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar les llinies siguientes en <code>LocalSettings.php</code> p'activar tolos aspeutos instalaos actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
+       "default-skin-not-found-no-skins": "L'aspeutu predetermináu pa la to wiki, definíu en <code>$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activáu)",
-       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactiváu''')"
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactiváu''')",
+       "mediastatistics": "Estadístiques de multimedia",
+       "mediastatistics-summary": "Estadístiques sobro los tipos de ficheros xubíos. Esto sólo incluye la versión más nueva d'un ficheru. Escluyense les versiones antigües o desaniciaes de los ficheros.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "Tipu MIME",
+       "mediastatistics-table-extensions": "Estensiones posibles",
+       "mediastatistics-table-count": "Númberu de ficheros",
+       "mediastatistics-table-totalbytes": "Tamañu combináu",
+       "mediastatistics-header-unknown": "Desconocíu",
+       "mediastatistics-header-bitmap": "Imaxes de mapa de bits",
+       "mediastatistics-header-drawing": "Dibuxos (imaxes vectoriales)",
+       "mediastatistics-header-audio": "Soníu",
+       "mediastatistics-header-video": "Videos",
+       "mediastatistics-header-multimedia": "Multimedia enriquecida",
+       "mediastatistics-header-office": "Oficina",
+       "mediastatistics-header-text": "Testual",
+       "mediastatistics-header-executable": "Executables",
+       "mediastatistics-header-archive": "Formatos comprimíos",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|coma al final desanicióse|comes al final desaniciáronse}} de JSON",
+       "json-error-unknown": "Hebo un problema col JSON. Error: $1",
+       "json-error-depth": "Pasóse de la fondura máxima de la pila",
+       "json-error-state-mismatch": "JSON inválidu o incorreutu",
+       "json-error-ctrl-char": "Error de caráuter de control, seique codificáu incorreutamente",
+       "json-error-syntax": "Error de sintaxis",
+       "json-error-utf8": "Carauteres UTF-8 con errores de formatu, seique codificaos incorreutamente",
+       "json-error-recursion": "Una o más referencies recursives nel valor a codificar",
+       "json-error-inf-or-nan": "Unu o más valores NAN (númberu nun conseñáu) o INF (infinitu) nel valor a codificar",
+       "json-error-unsupported-type": "Diose un valor d'un tipu que nun pue codificase"
 }
index 5ffbc51..605ba1a 100644 (file)
        "pagetitle": "$1 — {{SITENAME}}",
        "retrievedfrom": "Атрымана з «$1»",
        "youhavenewmessages": "Вы атрымалі $1 ($2).",
-       "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы}} атрымалі $1 ад {{PLURAL:$3|1=іншага ўдзельніка|$3 удзельнікаў}} ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы}} атрымалі $1 ад $3 {{PLURAL:$3|удзельніка|удзельнікаў}} ($2).",
        "youhavenewmessagesmanyusers": "Вы атрымалі $1 ад некалькіх удзельнікаў ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|1=новае паведамленьне|999=новыя паведамленьні}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|1=апошняя зьмена|999=апошнія зьмены}}",
        "json-error-ctrl-char": "Памылка кантрольнага сымбалю, магчыма, няслушнае кадаваньне",
        "json-error-syntax": "Сынтаксычная памылка",
        "json-error-utf8": "Некарэктныя сымбалі UTF-8, магчыма, няслушнае кадаваньне",
-       "json-error-recursion": "Значэньне, якое трэба закадаваць, утрымлівае адну ці некалькі рэкурсіўных спасылак"
+       "json-error-recursion": "Значэньне, якое трэба закадаваць, утрымлівае адну ці некалькі рэкурсіўных спасылак",
+       "json-error-inf-or-nan": "У значэньні, якое трэба закадаваць, прысутнічаюць адно ці болей NAN- або INF-значэньняў",
+       "json-error-unsupported-type": "Было пададзенае значэньне тыпу, які ня можа быць закадаваны"
 }
index a2f9ecc..7cac1d5 100644 (file)
        "unblocked": "Distanket eo bet [[User:$1|$1]]",
        "unblocked-range": "Distanket eo bet $1",
        "unblocked-id": "Distanket eo bet $1",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] zo bet distanket.",
        "blocklist": "Implijerien stanket",
        "ipblocklist": "Implijerien stanket",
        "ipblocklist-legend": "Kavout un implijer stanket",
index 771c62a..cfb0e61 100644 (file)
        "wlheader-enotif": "La notificació per correu electrònic està habilitada.",
        "wlheader-showupdated": "Les pàgines que s'han canviat des de la vostra darrera visita es mostren en '''negreta'''.",
        "wlnote": "A sota hi ha {{PLURAL:$1|el darrer canvi|els darrers <strong>$1</strong> canvis}} en {{PLURAL:$2|la darrera hora|les <strong>$2</strong> darreres hores}}, a $4 del $3.",
-       "wlshowlast": "<small>- Mostra les darreres $1 hores, els darrers $2 dies o </small>",
+       "wlshowlast": "Mostra les darreres $1 hores, els darrers $2 dies",
        "watchlist-options": "Opcions de la llista de seguiment",
        "watching": "S'està vigilant...",
        "unwatching": "S'està desatenent...",
        "protect-othertime": "Un altre termini:",
        "protect-othertime-op": "un altre termini",
        "protect-existing-expiry": "Data d'expiració existent: $2 a les $3",
+       "protect-existing-expiry-infinity": "Temps d'expiració existent: infinit",
        "protect-otherreason": "Motiu diferent o addicional:",
        "protect-otherreason-op": "Altres motius",
        "protect-dropdown": "*Motius comuns de protecció\n** Vandalisme excessiu\n** Spam excessiu\n** Guerra d'edicions improductiva\n** Pàgina amb alt trànsit",
        "log-name-pagelang": "Canvia el registre de llengua",
        "log-description-pagelang": "Aquest és un registre dels canvis en les llengües de les pàgines.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|ha canviat}} la llengua de la pàgina per a $3 de $4 a $5.",
+       "default-skin-not-found": "Òndia! L'aparença per defecte per al wiki, definit en <code dir=\"ltr\">$wgDefaultSkin</code> com <code>$1</code>, no està disponible.\n\nLa vostra instal·lació sembla que inclou les següents aparences. Consulteu [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Configuració d'aparences] per a la informació de com habilitar-les i triar-ne el valor per defecte.\n\n$2\n\n; Si heu acabat d'instal·lar MediaWiki:\n: Probablement l'instal·làveu des de git, o directament des del codi font utilitzant algun altre mètode. Això és l'esperat. Intenteu instal·lar algunes aparences des del [https://www.mediawiki.org/wiki/Category:All_skins directori d'aparences de mediawiki.org], per:\n: * Descarregar l'[https://www.mediawiki.org/wiki/Download instal·lador tarball], que ve amb diverses aparences i ampliacions. Podeu copiar i enganxar el directori <code>skins/</code> des d'aquí.\n: * Clonar un dels repositoris <code>mediawiki/skins/*</code> a través de git en el directori <code dir=\"ltr\">skins/</code> de la vostra instal·lació de MediaWiki.\n: Fent això no s'hauria d'interferir amb el vostre dipòsit git si sou un desenvolupador de MediaWiki.\n\n; Si només heu actualitzat MediaWiki:\n: Per MediaWiki 1.24 i posteriors ja no permet aparences instal·lades automàticament (consulteu [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Aparences autodiscovery]). Podeu enganxar les línies següents en <code>LocalSettings.php</code> per permetre totes les aparences instal·lades actualment:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si només heu modificat <code>LocalSettings.php</code>:\n: Reviseu els noms de l'aparença per errors tipogràfics.",
+       "default-skin-not-found-no-skins": "Òndia! L'aparença per defecte per al wiki, definit en <code>$wgDefaultSkin</code> com <code>$1</code>, no està disponible.\n\nNo teniu cap aparença instal·lada.\n\n\n; Si heu acabat d'instal·lar o actualitzar MediaWiki:\n: Probablement l'heu instal·lat des de git, o directament des del codi font utilitzant algun altre mètode. Això és l'esperat. Per MediaWiki 1.24 i posteriors ja no s'inclouen aparences en el repositori principal. Proveu d'instal·lar algunes aparences des del [https://www.mediawiki.org/wiki/Category:All_skins directori d'aparences de mediawiki.org], per:\n: * Descarregar l'[https://www.mediawiki.org/wiki/Download instal·lador tarball], que ve amb diverses aparences i ampliacions. Podeu copiar i enganxar el directori <code>skins/</code> des d'aquí.\n: * Clonar un dels repositoris <code>mediawiki/skins/*</code> a través de git en el directori <code dir=\"ltr\">skins/</code> de la vostra instal·lació de MediaWiki.\n: Fent això no s'hauria d'interferir amb el vostre dipòsit git si sou un desenvolupador de MediaWiki. Consulteu [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: configuració de l'aparença] per informació de com permetre aparences i triar-ne per defecte.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (habilitat)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''inhabilitat''')",
+       "mediastatistics": "Estadístiques dels multimèdia",
+       "mediastatistics-summary": "Les estadístiques sobre els tipus de fitxers pujats. Això només inclou la versió més recent d'un fitxer. S'exclouen les versions antigues o eliminades dels fitxers.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "mediastatistics-table-mimetype": "Tipus MIME",
        "mediastatistics-table-extensions": "Extensions possibles",
        "mediastatistics-table-count": "Nombre de fitxers",
        "mediastatistics-table-totalbytes": "Mida combinada",
+       "mediastatistics-header-unknown": "Desconegut",
        "mediastatistics-header-bitmap": "Imatges de mapa de bits",
+       "mediastatistics-header-drawing": "Dibuixos (imatges vectorials)",
        "mediastatistics-header-audio": "Àudio",
        "mediastatistics-header-video": "Vídeos",
+       "mediastatistics-header-multimedia": "Multimèdia enriquida",
        "mediastatistics-header-office": "Oficina",
+       "mediastatistics-header-text": "Textual",
        "mediastatistics-header-executable": "Executables",
        "mediastatistics-header-archive": "Formats comprimits",
-       "json-error-syntax": "Error de sintaxi"
+       "json-warn-trailing-comma": "$1 al final {{PLURAL:$1|coma ha estat eliminada|comes han estat eliminades}} de JSON",
+       "json-error-unknown": "S'ha produït un error amb el JSON. Error: $1",
+       "json-error-depth": "S'ha superat la profunditat màxima de pila",
+       "json-error-state-mismatch": "JSON incorrecte o no vàlid",
+       "json-error-ctrl-char": "Error de caràcter de control, possiblement incorrectament codificat",
+       "json-error-syntax": "Error de sintaxi",
+       "json-error-utf8": "Caràcters UTF-8 amb errors de format, probablement mal codificats",
+       "json-error-recursion": "Una o més referències recursives en el valor per ser codificat",
+       "json-error-inf-or-nan": "Un o més valors NAN (número no assignat) o INF (infinit) en el valor per ser codificat",
+       "json-error-unsupported-type": "S'ha donat un valor d'un tipus que no pot ser codificat"
 }
index e5b6be1..2566aea 100644 (file)
                        "Oldstoneage",
                        "Omid.koli",
                        "Alirezaaa",
-                       "Mogoeilor"
+                       "Mogoeilor",
+                       "Hosseinblue"
                ]
        },
-       "tog-underline": "خطکشیدن زیر پیوندها:",
+       "tog-underline": "خط کشیدن زیر پیوندها:",
        "tog-hideminor": "تغییرات جزئی از فهرست تغییرات اخیر پنهان شوند",
        "tog-hidepatrolled": "ویرایش‌های گشت‌خورده از فهرست تغییرات اخیر پنهان شوند",
        "tog-newpageshidepatrolled": "صفحه‌های گشت‌خورده از فهرست صفحه‌های تازه پنهان شوند",
        "contribslink": "مشارکت‌ها",
        "emaillink": "ارسال رایانامه",
        "autoblocker": "به طور خودکار بسته شد چون آی‌پی شما به تازگی توسط کاربر «[[User:$1|$1]]» استفاده شده‌است.\nدلیل قطع دسترسی $1 چنین است \"$2\"",
-       "blocklogpage": "سÛ\8cاÙ\87Ù\87Ù\94 Ø¨Ø³ØªÙ\87â\80\8cشدÙ\86â\80\8cÙ\87ا",
+       "blocklogpage": "سÛ\8cاÙ\87Ù\87Ù\94 Ø¨Ø³ØªÙ\86",
        "blocklog-showlog": "دسترسی این کاربر در گذشته بسته شده‌است.\nسیاههٔ قطع دسترسی در زیر نمایش یافته است:",
        "blocklog-showsuppresslog": "دسترسی این کاربر قبلاً بسته شده و این کاربر پنهان شده‌است.\nسیاههٔ قطع دسترسی در زیر نمایش یافته است:",
        "blocklogentry": "«[[$1]]» را تا $2 بست $3",
index e1b69f4..fb7f9dc 100644 (file)
        "wlheader-enotif": "A notificación por correo electrónico está activada.",
        "wlheader-showupdated": "As páxinas que cambiaron desde a súa última visita móstranse en '''negra'''.",
        "wlnote": "A continuación {{PLURAL:$1|está a última modificación|están as últimas <strong>$1</strong> modificacións}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} ata o $3 ás $4.",
-       "wlshowlast": "Mostrar as últimas $1 horas, os últimos $2 días ou",
+       "wlshowlast": "Mostrar as últimas $1 horas e os últimos $2 días",
        "watchlist-options": "Opcións de vixilancia",
        "watching": "Vixiando...",
        "unwatching": "Deixando de vixiar...",
index 720bd6f..dd97f70 100644 (file)
        "category-empty": "'''קטגוריה זו אינה כוללת דפים או קובצי מדיה.'''",
        "hidden-categories": "{{PLURAL:$1|קטגוריה מוסתרת|קטגוריות מוסתרות}}",
        "hidden-category-category": "קטגוריות מוסתרות",
-       "category-subcat-count": "{{PLURAL:$2|קטגוריה זו כוללת את קטגוריית המשנה הבאה בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה המוצגת להלן|$1 קטגוריות המשנה המוצגות להלן}}, וכוללת בסך הכול $2 קטגוריות משנה.}}",
+       "category-subcat-count": "{{PLURAL:$2|קטגוריה זו כוללת את קטגוריית המשנה הבאה בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה המוצגת להלן|$1 קטגוריות המשנה המוצגות להלן}}, וכוללת בסך־הכול $2 קטגוריות משנה.}}",
        "category-subcat-count-limited": "קטגוריה זו כוללת את {{PLURAL:$1|קטגוריית המשנה הבאה|$1 קטגוריות המשנה הבאות}}.",
-       "category-article-count": "{{PLURAL:$2|קטגוריה זו כוללת את הדף הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הדף המוצג להלן|$1 הדפים המוצגים להלן}}, וכוללת בסך הכול $2 דפים.}}",
+       "category-article-count": "{{PLURAL:$2|קטגוריה זו כוללת את הדף הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הדף המוצג להלן|$1 הדפים המוצגים להלן}}, וכוללת בסך־הכול $2 דפים.}}",
        "category-article-count-limited": "קטגוריה זו כוללת את {{PLURAL:$1|הדף הבא|$1 הדפים הבאים}}.",
-       "category-file-count": "{{PLURAL:$2|קטגוריה זו כוללת את הקובץ הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הקובץ המוצג להלן|$1 הקבצים המוצגים להלן}}, וכוללת בסך הכול $2 קבצים.}}",
+       "category-file-count": "{{PLURAL:$2|קטגוריה זו כוללת את הקובץ הבא בלבד.|קטגוריה זו כוללת את {{PLURAL:$1|הקובץ המוצג להלן|$1 הקבצים המוצגים להלן}}, וכוללת בסך־הכול $2 קבצים.}}",
        "category-file-count-limited": "קטגוריה זו כוללת את {{PLURAL:$1|הקובץ הבא|$1 הקבצים הבאים}}.",
        "listingcontinuesabbrev": "(המשך)",
        "index-category": "דפים המופיעים במנועי חיפוש",
        "databaseerror-error": "שגיאה: $1",
        "laggedslavemode": "'''אזהרה:''' הדף עשוי שלא להכיל עדכונים אחרונים.",
        "readonly": "בסיס הנתונים נעול",
-       "enterlockreason": "× ×\90 להזין סיבה לנעילה, כולל הערכה למועד שחרור הנעילה",
+       "enterlockreason": "×\99ש להזין סיבה לנעילה, כולל הערכה למועד שחרור הנעילה",
        "readonlytext": "בסיס נתונים זה של האתר נעול ברגע זה לצורך הזנת נתונים ושינויים. ככל הנראה מדובר בתחזוקה שוטפת, שלאחריה יחזור האתר לפעולתו הרגילה.\n\nמנהל המערכת שנעל את בסיס הנתונים סיפק את ההסבר הבא: $1",
        "missing-article": "בסיס הנתונים לא מצא את הטקסט של הדף שהוא היה אמור למצוא, בשם \"$1\" $2.\n\nהדבר נגרם בדרך כלל על־ידי קישור ישן להשוואת גרסאות של דף שנמחק או לגרסה של דף כזה.\n\nאם זה אינו המקרה, זהו כנראה באג בתוכנה.\nאנא דווחו על כך ל[[Special:ListUsers/sysop|מפעיל מערכת]], תוך שמירת פרטי כתובת ה־URL.",
        "missingarticle-rev": "(מספר גרסה: $1)",
        "actionthrottledtext": "כאמצעי נגד ספאם, קיימת מגבלה על ביצוע פעולה זו פעמים רבות מדי בזמן קצר, וחרגת מהמגבלה הזו.\nנא לנסות שוב בעוד מספר דקות.",
        "protectedpagetext": "דף זה מוגן כדי למנוע עריכה ופעולות אחרות.",
        "viewsourcetext": "באפשרותך לצפות בטקסט המקור של הדף ולהעתיקו:",
-       "viewyourtext": "×\91×\90פשר×\95ת×\9b×\9d ×\9cצפ×\95ת ×\91×\98קס×\98 ×\94×\9eק×\95ר ×©×\9c '''×\94ער×\99×\9b×\95ת ×©×\9c×\9b×\9d''' ×©×\9c ×\94×\93×£ ולהעתיקו:",
+       "viewyourtext": "×\91×\90פשר×\95ת×\9a ×\9cצפ×\95ת ×\91×\98קס×\98 ×\94×\9eק×\95ר ×©×\9c <strong>×\94ער×\99×\9b×\95ת ×©×\9c×\9a</strong> ×\91×\93×£ ×\94×\96×\94 ולהעתיקו:",
        "protectedinterface": "דף זה הוא אחד מסדרת דפים המספקים הודעות מערכת לתוכנה באתר ויקי זה, ומוגן כדי למנוע השחתות.\nכדי להוסיף או לשנות תרגומים בכל אתרי הוויקי, אנא השתמשו ב־[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
        "editinginterface": "'''אזהרה:''' הדף שאתם עורכים הוא אחד הדפים המספקים הודעות מערכת לתוכנה.\nשינויים בדף זה ישפיעו על תצוגת ממשק המשתמש של משתמשים אחרים באתר ויקי זה.\nכדי להוסיף או לשנות תרגומים בכל אתרי הוויקי, אנא השתמשו ב־[//translatewiki.net/ translatewiki.net], פרויקט התרגום של מדיה־ויקי.",
        "cascadeprotected": "דף זה מוגן מעריכה כי הוא מוכלל {{PLURAL:$1|בדף הבא, שמופעלת עליו|בדפים הבאים, שמופעלת עליהם}} הגנה מדורגת:\n$2",
-       "namespaceprotected": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d ×\9cער×\95×\9a ×\93פ×\99×\9d ×\91×\9eר×\97×\91 ×\94ש×\9d '''$1'''.",
+       "namespaceprotected": "×\90×\99×\9f ×\9c×\9a ×\94רש×\90×\94 ×\9cער×\95×\9a ×\93פ×\99×\9d ×\91×\9eר×\97×\91 ×\94ש×\9d <strong>$1</strong>.",
        "customcssprotected": "אינך מורשה לערוך דף CSS זה כיוון שהוא כולל הגדרות אישיות של משתמש אחר.",
        "customjsprotected": "אינך מורשה לערוך דף JavaScript זה כיוון שהוא כולל הגדרות אישיות של משתמש אחר.",
-       "mycustomcssprotected": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d לערוך דף CSS זה.",
-       "mycustomjsprotected": "×\90×\99× ×\9b×\9d ×\9e×\95רש×\99×\9d לערוך דף JavaScript זה.",
+       "mycustomcssprotected": "×\90×\99×\9f ×\9c×\9a ×\94רש×\90×\94 לערוך דף CSS זה.",
+       "mycustomjsprotected": "×\90×\99×\9f ×\9c×\9a ×\94רש×\90×\94 לערוך דף JavaScript זה.",
        "myprivateinfoprotected": "אין לך הרשאה לערוך את המידע הפרטי שלך",
        "mypreferencesprotected": "אין לך הרשאה לערוך את ההעדפות שלך.",
        "ns-specialprotected": "לא ניתן לערוך דפים מיוחדים.",
-       "titleprotected": "לא ניתן ליצור דף זה, כיוון שהמשתמש [[User:$1|$1]] הגן עליו מפני יצירה.\nהסיבה שניתנה לכך היא \"$2\".",
+       "titleprotected": "[[User:$1|$1]] {{GENDER:$1|הפעיל|הפעילה}} הגנה על הדף הזה מפני יצירה.\nהסיבה שניתנה לכך היא \"<em>$2</em>\".",
        "filereadonlyerror": "לא ניתן לשנות את הקובץ \"$1\" כיוון שמאגר הקבצים \"$2\" במצב קריאה בלבד.\n\nמנהל המערכת שנעל את המאגר סיפק את ההסבר הבא: \"'''$3'''\".",
        "invalidtitle-knownnamespace": "כותרת בלתי־תקינה עם מרחב השם \"$2\" ושם דף \"$3\"",
        "invalidtitle-unknownnamespace": "כותרת בלתי־תקינה עם מרחב שם בלתי־ידוע מספר $1 ושם דף \"$2\"",
        "exception-nologin": "לא בחשבון",
        "exception-nologin-text": "אנא היכנסו לחשבון כדי לראות את הדף הזה או לבצע את הפעולה הזו.",
-       "exception-nologin-text-manual": "×\90× ×\90 $1 כדי לראות את הדף הזה או לבצע את הפעולה הזו.",
+       "exception-nologin-text-manual": "× ×\93רשת $1 כדי לראות את הדף הזה או לבצע את הפעולה הזו.",
        "virus-badscanner": "הגדרות שגויות: סורק הווירוסים אינו ידוע: ''$1''",
        "virus-scanfailed": "הסריקה נכשלה (קוד: $1)",
        "virus-unknownscanner": "אנטי־וירוס בלתי ידוע:",
        "emailnotauthenticated": "כתובת הדוא\"ל שלכם עדיין לא אומתה.\nלא יישלח אליכם דוא\"ל עבור אף אחת מהתכונות הבאות.",
        "noemailprefs": "יש לציין כתובת דוא\"ל בהעדפות שלך כדי שתכונות אלה יעבדו.",
        "emailconfirmlink": "אישור כתובת הדוא\"ל שלך",
-       "invalidemailaddress": "×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×\90×\99× ×\94 ×\9eתק×\91×\9cת ×\9b×\99×\95×\95×\9f ×©× ×¨×\90×\94 ×©×\94×\99×\90 ×\91פ×\95ר×\9e×\98 ×\9c×\90 ×\97×\95ק×\99.\n× ×\90 להזין כתובת תקינה או להשאיר את השדה ריק.",
+       "invalidemailaddress": "×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×\90×\99× ×\94 ×\9eתק×\91×\9cת ×\9b×\99×\95×\95×\9f ×©× ×¨×\90×\94 ×©×\94×\99×\90 ×\91פ×\95ר×\9e×\98 ×\9c×\90 ×\97×\95ק×\99.\n×\99ש להזין כתובת תקינה או להשאיר את השדה ריק.",
        "cannotchangeemail": "לא ניתן לשנות את כתובות הדוא\"ל של חשבונות באתר ויקי זה.",
        "emaildisabled": "אתר זה לא יכול לשלוח דואר אלקטרוני.",
        "accountcreated": "החשבון נוצר",
        "changepassword-success": "סיסמתך שונתה בהצלחה!",
        "changepassword-throttled": "ביצעתם לאחרונה ניסיונות רבים מדי להיכנס לחשבון זה.\nאנא המתינו $1 לפני שתנסו שוב.",
        "resetpass_forbidden": "לא ניתן לשנות סיסמאות.",
-       "resetpass-no-info": "×\99ש ×\9c×\94×\99×\9bנס לחשבון כדי לגשת לדף זה באופן ישיר.",
+       "resetpass-no-info": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לגשת לדף זה באופן ישיר.",
        "resetpass-submit-loggedin": "שינוי סיסמה",
        "resetpass-submit-cancel": "ביטול",
        "resetpass-wrong-oldpass": "הסיסמה הזמנית או הנוכחית אינה תקינה.\nייתכן שכבר שינית את סיסמתך או שכבר ביקשת סיסמה זמנית חדשה.",
        "passwordreset-emailerror-capture": "נוצר דואר אלקטרוני לאיפוס הסיסמה, והוא מוצג להלן, אך שליחתו ל{{GENDER:$2|משתמש|משתמשת}} נכשלה: $1",
        "changeemail": "שינוי כתובת דוא\"ל",
        "changeemail-text": "מלאו טופס זה כדי לשנות את כתובת הדואר האלקטרוני שלכם. יהיה עליכם למלא סיסמה כדי לאשר את השינוי.",
-       "changeemail-no-info": "×\99ש ×\9c×\94×\99×\9bנס לחשבון כדי לגשת לדף זה ישירות.",
+       "changeemail-no-info": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לגשת לדף זה ישירות.",
        "changeemail-oldemail": "כתובת דוא\"ל נוכחית:",
        "changeemail-newemail": "כתובת דוא\"ל חדשה:",
        "changeemail-none": "(אין)",
        "anoneditwarning": "<strong>אזהרה:</strong> אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם <strong>[$1 תיכנסו לחשבון]</strong> או <strong>[$2 תיצרו חשבון]</strong>, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.",
        "anonpreviewwarning": "''אינכם מחוברים לחשבון. שמירה תגרום לכתובת ה־IP שלכם להירשם בהיסטוריית העריכות של הדף.''",
        "missingsummary": "<strong>תזכורת:</strong> לא הזנת תקציר עריכה.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום לעריכה שלך להישמר בלעדיו.",
-       "missingcommenttext": "× ×\90 להקליד את ההודעה למטה.",
+       "missingcommenttext": "×\99ש להקליד את ההודעה למטה.",
        "missingcommentheader": "<strong>תזכורת:</strong> לא הזנת נושא/כותרת להודעה זו.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום לעריכה שלך להישמר ללא נושא/כותרת.",
        "summary-preview": "תצוגה מקדימה של התקציר:",
        "subject-preview": "תצוגה מקדימה של הנושא/הכותרת:",
        "blockedtext": "'''שם המשתמש או כתובת ה־IP שלכם נחסמו.'''\n\nהחסימה בוצעה על ידי $1. הסיבה שניתנה לכך היא '''$2'''.\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nבאפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] האחרים כדי לדון על החסימה.\nאינכם יכולים להשתמש בתכונת \"שליחת דואר אלקטרוני למשתמש זה\" אם לא ציינתם כתובת דוא\"ל תקפה ב[[Special:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא\"ל.\nכתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5.\nאנא ציינו את כל הפרטים הללו בכל פנייה למפעילי המערכת.",
        "autoblockedtext": "כתובת ה־IP שלכם נחסמה באופן אוטומטי כיוון שמשתמש אחר, שנחסם על־ידי $1, השתמש בה.\nהסיבה שניתנה לחסימה היא:\n\n:<em>$2</em>\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nבאפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] האחרים כדי לדון בחסימה.\n\nבאפשרותכם להשתמש בתכונת \"שליחת דואר אלקטרוני למשתמש זה\", אלא אם לא ציינתם כתובת דוא\"ל תקינה ב[[Special:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא\"ל.\n\nכתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5.\nאנא ציינו את כל הפרטים הללו בכל פנייה למפעילי המערכת.",
        "blockednoreason": "לא ניתנה סיבה",
-       "whitelistedittext": "×¢×\9c×\99×\9b×\9d $1 כדי לערוך דפים.",
+       "whitelistedittext": "× ×\93רשת $1 כדי לערוך דפים.",
        "confirmedittext": "עליכם לאמת את כתובת הדוא\"ל שלכם לפני שתוכלו לערוך דפים. אנא הגדירו ואמתו את כתובת הדוא\"ל שלכם באמצעות [[Special:Preferences|העדפות המשתמש]] שלכם.",
        "nosuchsectiontitle": "הפסקה לא נמצאה",
        "nosuchsectiontext": "ניסית לערוך פסקה שאינה קיימת.\nייתכן שהיא הועברה או נמחקה בעת שצפית בדף.",
        "loginreqtitle": "נדרשת כניסה לחשבון",
-       "loginreqlink": "×\9c×\94×\99×\9bנס לחשבון",
-       "loginreqpagetext": "× ×\90 $1 כדי לצפות בדפים אחרים.",
+       "loginreqlink": "×\9b× ×\99ס×\94 לחשבון",
+       "loginreqpagetext": "× ×\93רשת $1 כדי לצפות בדפים אחרים.",
        "accmailtitle": "הסיסמה נשלחה",
        "accmailtext": "סיסמה אקראית עבור [[User talk:$1|$1]] נשלחה אל $2. ניתן לשנותה בדף '''[[Special:ChangePassword|שינוי הסיסמה]]''' לאחר הכניסה.",
        "newarticle": "(חדש)",
        "template-semiprotected": "(מוגנת חלקית)",
        "hiddencategories": "דף זה כלול ב{{PLURAL:$1|קטגוריה מוסתרת אחת|־$1 קטגוריות מוסתרות}}:",
        "edittools": "<!-- הטקסט הנכתב כאן יוצג מתחת לטופסי עריכת דפים והעלאת קבצים, ולפיכך ניתן לכתוב להציג בו תווים קשים לכתיבה, קטעים מוכנים של טקסט ועוד. -->",
-       "nocreatetext": "ב{{grammar:תחילית|{{SITENAME}}}} קיימת הגבלה על יצירת דפים חדשים.\nבאפשרותך לחזור אחורה ולערוך דף קיים, או [[Special:UserLogin|להיכנס לחשבון]].",
+       "nocreatetext": "ב{{grammar:תחילית|{{SITENAME}}}} קיימת הגבלה על יצירת דפים חדשים.\nבאפשרותך לחזור אחורה ולערוך דף קיים, או [[Special:UserLogin|להיכנס לחשבון או ליצור חשבון]].",
        "nocreate-loggedin": "אינך מורשה ליצור דפים חדשים.",
        "sectioneditnotsupported-title": "עריכת פסקאות אינה נתמכת",
        "sectioneditnotsupported-text": "עריכת פסקאות אינה נתמכת בדף זה.",
        "suppressionlog": "יומן העלמות",
        "suppressionlogtext": "להלן רשימת המחיקות והחסימות הכוללות תוכן המוסתר ממפעילי המערכת.\nראו את [[Special:BlockList|רשימת החסומים]] לרשימת החסימות הפעילות כעת.",
        "mergehistory": "מיזוג גרסאות של דפים",
-       "mergehistory-header": "×\94×\93×£ ×\94×\96×\94 ×\9e×\90פשר ×\9c×\9a ×\9c×\9e×\96×\92 ×\92רס×\90×\95ת ×\9eת×\95×\9a ×\94×\99ס×\98×\95ר×\99×\99ת ×\92רס×\90×\95ת ×©×\9c ×\93×£ ×\90×\97×\93 ×\9cת×\95×\9a ×\93×£ ×\97×\93ש.\n× ×\90 לוודא שהמיזוג לא יפגע בהמשכיות השינויים בדף הישן.",
+       "mergehistory-header": "×\93×£ ×\96×\94 ×\9e×\90פשר ×\9c×\9a ×\9c×\9e×\96×\92 ×\92רס×\90×\95ת ×\9eת×\95×\9a ×\94×\99ס×\98×\95ר×\99×\99ת ×\92רס×\90×\95ת ×©×\9c ×\93×£ ×\90×\97×\93 (×\93×£ ×\94×\9eק×\95ר) ×\9cת×\95×\9a ×\93×£ ×\97×\93ש.\n×\99ש לוודא שהמיזוג לא יפגע בהמשכיות השינויים בדף הישן.",
        "mergehistory-box": "מיזוג גרסאות של שני דפים:",
        "mergehistory-from": "דף המקור:",
        "mergehistory-into": "דף היעד:",
        "mergehistory-list": "היסטוריית עריכות בת מיזוג",
-       "mergehistory-merge": "× ×\99ת×\9f ×\9c×\9e×\96×\92 ×\90ת ×\94×\92רס×\90×\95ת ×\94×\91×\90×\95ת ×©×\9c [[:$1]] ×\9cת×\95×\9a [[:$2]].\n× ×\90 ×\9c×\94שת×\9eש ×\91×\9c×\97צנ×\99 ×\94×\90פשר×\95ת ×\9b×\93×\99 ×\9c×\91×\97×\95ר ×\96×\9e×\9f ×©×¨×§ ×\92רס×\90×\95ת ×©× ×\95צר×\95 ×\91×\95 ×\95×\9cפנ×\99×\95 ×\99×\9e×\95×\96×\92×\95.\nש×\99×\9e×\95ש ×\91ק×\99ש×\95ר×\99 ×\94× ×\99×\95×\95×\98 ×\99יאפס עמודה זו.",
+       "mergehistory-merge": "× ×\99ת×\9f ×\9c×\9e×\96×\92 ×\90ת ×\94×\92רס×\90×\95ת ×\94×\91×\90×\95ת ×©×\9c [[:$1]] ×\9cת×\95×\9a [[:$2]].\n×\99ש ×\9c×\94שת×\9eש ×\91×\9c×\97צנ×\99 ×\94×\90פשר×\95ת ×\9b×\93×\99 ×\9c×\91×\97×\95ר ×\96×\9e×\9f ×©×¨×§ ×\92רס×\90×\95ת ×©× ×\95צר×\95 ×\91×\95 ×\95×\9cפנ×\99×\95 ×\99×\9e×\95×\96×\92×\95.\nש×\99×\9e×\95ש ×\91ק×\99ש×\95ר×\99 ×\94× ×\99×\95×\95×\98 יאפס עמודה זו.",
        "mergehistory-go": "הצגת עריכות בנות מיזוג",
        "mergehistory-submit": "מיזוג",
        "mergehistory-empty": "אין גרסאות למיזוג.",
        "mergehistory-success": "{{PLURAL:$3|גרסה אחת|$3 גרסאות}} של [[:$1]] מוזגו בהצלחה לתוך [[:$2]].",
-       "mergehistory-fail": "×\9c×\90 × ×\99ת×\9f ×\9c×\91צע ×\90ת ×\9e×\99×\96×\95×\92 ×\94×\92רס×\90×\95ת, × ×\90 לבדוק שנית את הגדרות הדף והזמן.",
+       "mergehistory-fail": "×\9c×\90 × ×\99ת×\9f ×\9c×\91צע ×\90ת ×\9e×\99×\96×\95×\92 ×\94×\92רס×\90×\95ת, ×\99ש לבדוק שנית את הגדרות הדף והזמן.",
        "mergehistory-fail-toobig": "לא ניתן לבצע את מיזוג הגרסאות כיוון שצריך להעביר יותר גרסאות מהמגבלה, שהיא {{PLURAL:$1|גרסה אחת|‏‏֫$1 גרסאות}}.",
        "mergehistory-no-source": "דף המקור $1 אינו קיים.",
        "mergehistory-no-destination": "דף היעד $1 אינו קיים.",
        "preferences": "העדפות",
        "mypreferences": "העדפות",
        "prefs-edits": "מספר עריכות:",
-       "prefsnologintext2": "×\90× ×\90 ×\94×\99×\9bנס×\95 לחשבון כדי לשנות העדפות משתמש.",
+       "prefsnologintext2": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לשנות העדפות משתמש.",
        "prefs-skin": "עיצוב",
        "skin-preview": "תצוגה מקדימה",
        "datedefault": "ברירת המחדל",
        "userrights-groupsmember-auto": "{{GENDER:$2|חבר|חברה}} אוטומטית ב{{PLURAL:$1|קבוצה|קבוצות}}:",
        "userrights-groups-help": "באפשרותכם לשנות את הקבוצות שמשתמש זה חבר בהן:\n* תיבה מסומנת פירושה שהמשתמש חבר בקבוצה.\n* תיבה בלתי מסומנת פירושה שהמשתמש אינו חבר בקבוצה.\n* סימון * פירושו שלא תוכלו להסיר משתמש מהקבוצה מרגע שהוספתם אותו אליה, או להפך.",
        "userrights-reason": "סיבה:",
-       "userrights-no-interwiki": "×\90×\99×\9f ×\9c×\9b×\9d הרשאה לערוך הרשאות משתמש באתרים אחרים.",
+       "userrights-no-interwiki": "×\90×\99×\9f ×\9c×\9a הרשאה לערוך הרשאות משתמש באתרים אחרים.",
        "userrights-nodatabase": "בסיס הנתונים $1 אינו קיים או אינו מקומי.",
        "userrights-nologin": "עליכם [[Special:UserLogin|להיכנס לחשבון]] עם הרשאות מתאימות כדי לשנות הרשאות של משתמשים.",
        "userrights-notallowed": "אין לך הרשאה להוסיף או להסיר הרשאות של משתמשים.",
        "uploadbtn": "העלאה",
        "reuploaddesc": "ביטול ההעלאה וחזרה לטופס העלאת קבצים לשרת",
        "upload-tryagain": "שליחת התיאור החדש של הקובץ",
-       "uploadnologin": "לא נכנסתם לחשבון",
-       "uploadnologintext": "×¢×\9c×\99×\9b×\9d $1 כדי להעלות קבצים.",
+       "uploadnologin": "לא נכנסת לחשבון",
+       "uploadnologintext": "× ×\93רשת $1 כדי להעלות קבצים.",
        "upload_directory_missing": "שרת האינטרנט אינו יכול ליצור את תיקיית ההעלאות ($1) החסרה.",
        "upload_directory_read_only": "שרת האינטרנט אינו יכול לכתוב בתיקיית ההעלאות ($1).",
        "uploaderror": "שגיאה בהעלאת הקובץ",
        "tmp-write-error": "שגיאה בכתיבה לקובץ הזמני",
        "large-file": "מומלץ שהקבצים לא יהיו גדולים יותר מ־$1 (גודל הקובץ שהעליתם הוא $2).",
        "largefileserver": "גודל הקובץ חורג ממגבלת השרת.",
-       "emptyfile": "נר×\90×\94 ×©×\94ק×\95×\91×¥ ×©×\94×¢×\9c×\99ת ×¨×\99ק.\n×\99×\99ת×\9b×\9f ×©×\94ס×\99×\91×\94 ×\9c×\9b×\9a ×\94×\99×\90 ×©×\92×\99×\90ת ×\94ק×\9c×\93×\94 ×\91ש×\9d ×\94ק×\95×\91×¥.\n× ×\90 לוודא שזה הקובץ שברצונך להעלות.",
+       "emptyfile": "נר×\90×\94 ×©×\94ק×\95×\91×¥ ×©×\94×¢×\9c×\99ת ×¨×\99ק.\n×\99×\99ת×\9b×\9f ×©×\94ס×\99×\91×\94 ×\9c×\9b×\9a ×\94×\99×\90 ×©×\92×\99×\90ת ×\94ק×\9c×\93×\94 ×\91ש×\9d ×\94ק×\95×\91×¥.\n×\99ש לוודא שזה הקובץ שברצונך להעלות.",
        "windows-nonascii-filename": "אתר ויקי זה אינו תומך בשמות קבצים עם תווים מיוחדים או תווים שאינם באנגלית.",
        "fileexists": "קובץ בשם הזה כבר קיים, אנא בדקו את <strong>[[:$1]]</strong> אם אינכם בטוחים שברצונכם להחליף אותו.\n[[$1|thumb]]",
        "filepageexists": "דף תיאור הקובץ עבור קובץ זה כבר נוצר ב<strong>[[:$1]]</strong>, אך לא קיים קובץ בשם זה.\nתיאור הקובץ שתכתבו לא יופיע בדף תיאור הקובץ.\nכדי לגרום לו להופיע שם, יהיה עליכם לערוך אותו ידנית. [[$1|thumb]]",
        "fileexists-extension": "קובץ עם שם דומה כבר קיים: [[$2|thumb]]\n* שם הקובץ המועלה: <strong>[[:$1]]</strong>\n* שם הקובץ הקיים: <strong>[[:$2]]</strong>\nאולי כדאי לתת לקובץ שם ספציפי יותר?",
-       "fileexists-thumbnail-yes": "נר×\90×\94 ×©×\94ק×\95×\91×¥ ×\94×\95×\90 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n[[$1|thumb]]\n× ×\90 לבדוק את הקובץ <strong>[[:$1]]</strong>.\nאם הקובץ שבדקת הוא אותה התמונה בגודל מקורי, אין זה הכרחי להעלות גם תמונה ממוזערת.",
-       "file-thumbnail-no": "ש×\9d ×\94ק×\95×\91×¥ ×\9eת×\97×\99×\9c ×¢×\9d <strong>$1</strong>.\nנר×\90×\94 ×©×\96×\95×\94×\99 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n×\90×\9d ×\94ת×\9e×\95× ×\94 ×\91×\92×\95×\93×\9c ×\9e×\9c×\90 ×\9eצ×\95×\99×\94 ×\91רש×\95ת×\9a, × ×\90 ×\9c×\94×¢×\9c×\95ת ×\90×\95ת×\94 ×\95×\9c×\90 ×\90ת ×\94ת×\9e×\95× ×\94 ×\94×\9e×\9e×\95×\96ערת; ×\90×\97רת, × ×\90 לשנות את שם הקובץ.",
+       "fileexists-thumbnail-yes": "נר×\90×\94 ×©×\94ק×\95×\91×¥ ×\94×\95×\90 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n[[$1|thumb]]\n×\99ש לבדוק את הקובץ <strong>[[:$1]]</strong>.\nאם הקובץ שבדקת הוא אותה התמונה בגודל מקורי, אין זה הכרחי להעלות גם תמונה ממוזערת.",
+       "file-thumbnail-no": "ש×\9d ×\94ק×\95×\91×¥ ×\9eת×\97×\99×\9c ×\91Ö¾<strong>$1</strong>.\nנר×\90×\94 ×©×\96×\95×\94×\99 ×ª×\9e×\95× ×\94 ×\9e×\95ק×\98נת (×\9e×\9e×\95×\96ערת).\n×\90×\9d ×\94ת×\9e×\95× ×\94 ×\91×\92×\95×\93×\9c ×\9e×\9c×\90 ×\9eצ×\95×\99×\94 ×\91רש×\95ת×\9a, ×\99ש ×\9c×\94×¢×\9c×\95ת ×\90×\95ת×\94 ×\95×\9c×\90 ×\90ת ×\94ת×\9e×\95× ×\94 ×\94×\9e×\9e×\95×\96ערת; ×\90×\97רת, ×\99ש לשנות את שם הקובץ.",
        "fileexists-forbidden": "קובץ בשם זה כבר קיים, ואינכם יכולים להחליף אותו.\nאם אתם עדיין מעוניינים להעלות קובץ זה, אנא חזרו לדף הקודם והעלו את הקובץ תחת שם חדש.\n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "קובץ בשם זה כבר קיים כקובץ משותף.\nאם אתם עדיין מעוניינים להעלות קובץ זה, אנא חזרו לדף הקודם והעלו את הקובץ תחת שם חדש.\n[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "קובץ זה זהה {{PLURAL:$1|לקובץ הבא|לקבצים הבאים}}:",
-       "file-deleted-duplicate": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 ([[:$1]]) × ×\9e×\97ק ×\91×¢×\91ר.\n× ×\90 לבדוק את היסטוריית המחיקה של הקובץ לפני העלאתו מחדש.",
-       "file-deleted-duplicate-notitle": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 × ×\9e×\97ק ×\91×¢×\91ר, ×\95×\94×\9b×\95תרת ×©×\9c×\95 ×\94×\95×¢×\9c×\9e×\94.\n× ×\90 לבקש ממשתמש שיכול לראות נתונים על קבצים שהועלמו לבדוק את המצב לפני העלאת הקובץ מחדש.",
+       "file-deleted-duplicate": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 ([[:$1]]) × ×\9e×\97ק ×\91×¢×\91ר.\n×\99ש לבדוק את היסטוריית המחיקה של הקובץ לפני העלאתו מחדש.",
+       "file-deleted-duplicate-notitle": "ק×\95×\91×¥ ×\96×\94×\94 ×\9cק×\95×\91×¥ ×\96×\94 × ×\9e×\97ק ×\91×¢×\91ר, ×\95×\94×\9b×\95תרת ×©×\9c×\95 ×\94×\95×¢×\9c×\9e×\94.\n×\99ש לבקש ממשתמש שיכול לראות נתונים על קבצים שהועלמו לבדוק את המצב לפני העלאת הקובץ מחדש.",
        "uploadwarning": "אזהרת העלאת קבצים",
        "uploadwarning-text": "אנא שנו את תיאור הקובץ שלמטה ונסו שוב.",
        "savefile": "שמירת קובץ",
        "copyuploaddisabled": "העלאת קבצים מכתובת URL מבוטלת.",
        "uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת.",
        "php-uploaddisabledtext": "אפשרות העלאת הקבצים מבוטלת ברמת PHP. אנא בדקו את ההגדרה file_uploads.",
-       "uploadscripted": "הקובץ כולל קוד סקריפט או HTML שעשוי להתפרש או להתבצע בטעות על ידי הדפדפן.",
+       "uploadscripted": "הקובץ כולל קוד סקריפט או HTML שעשוי להתפרש או להתבצע בטעות על־ידי הדפדפן.",
        "uploadscriptednamespace": "קובץ ה‏‏֫־SVG הזה כולל מרחב שם בלתי חוקי: '$1'",
        "uploadinvalidxml": "לא ניתן לפרש את ה־XML בקובץ שהועלה.",
        "uploadvirus": "הקובץ מכיל וירוס!\nפרטים:\n<div dir=\"ltr\">$1</div>",
        "upload-options": "אפשרויות העלאה",
        "watchthisupload": "מעקב אחרי קובץ זה",
        "filewasdeleted": "קובץ בשם זה כבר הועלה בעבר, ולאחר מכן נמחק. אנא בדקו את הדף $1 לפני שתמשיכו להעלותו שנית.",
-       "filename-bad-prefix": "ש×\9d ×\94ק×\95×\91×¥ ×©×\90ת×\9d ×\9e×¢×\9c×\99×\9d ×\9eת×\97×\99×\9c ×¢×\9d '''\"$1\"''', ×©×\94×\95×\90 ×©×\9d ×©×\90×\99× ×\95 ×\9eת×\90ר ×\90ת ×\94ק×\95×\91×¥ ×\95×\91×\93ר×\9a ×\9b×\9c×\9c ×\9e×\95×\9bנס ×\90×\95×\98×\95×\9e×\98×\99ת ×¢×\9cÖ¾×\99×\93×\99 ×\9eצ×\9c×\9e×\95ת ×\93×\99×\92×\99×\98×\9c×\99×\95ת.\n×\90× ×\90 ×\91×\97ר×\95 שם מתאים יותר לקובץ, שיתאר את תכניו.",
+       "filename-bad-prefix": "ש×\9d ×\94ק×\95×\91×¥ ×©×\90ת×\9d ×\9e×¢×\9c×\99×\9d ×\9eת×\97×\99×\9c ×\91Ö¾<strong>\"$1\"</strong>, ×©×\94×\95×\90 ×©×\9d ×©×\90×\99× ×\95 ×\9eת×\90ר ×\90ת ×\94ק×\95×\91×¥ ×\95×\91×\93ר×\9a ×\9b×\9c×\9c ×\9e×\95קצ×\94 ×\90×\95×\98×\95×\9e×\98×\99ת ×¢×\9cÖ¾×\99×\93×\99 ×\9eצ×\9c×\9e×\95ת ×\93×\99×\92×\99×\98×\9c×\99×\95ת.\n×\99ש ×\9c×\91×\97×\95ר שם מתאים יותר לקובץ, שיתאר את תכניו.",
        "filename-prefix-blacklist": " #<!-- נא להשאיר שורה זו בדיוק כפי שהיא --> <pre>\n# התחביר הוא כדלקמן:\n#   * כל דבר מתו \"#\" לסוף השורה הוא הערה\n#   * כל שורה לא ריקה היא קידומת לשמות קבצים טיפוסיים שמצלמות דיגיטליות נותנות אוטומטית\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # מספר טלפונים סלולריים\nIMG # כללי\nJD # Jenoptik\nMGP # Pentax\nPICT # שונות\n #</pre> <!-- נא להשאיר שורה זו בדיוק כפי שהיא -->",
        "upload-success-subj": "ההעלאה הושלמה בהצלחה",
        "upload-success-msg": "ההעלאה מהכתובת [$2] הושלמה בהצלחה. הקובץ שהעליתם זמין כאן: [[:{{ns:file}}:$1]]",
        "upload-failure-subj": "בעיה בהעלאה",
-       "upload-failure-msg": "הייתה בעיה עם הקובץ שהעליתם מהכתובת [$2]:\n\n$1",
+       "upload-failure-msg": "הייתה בעיה עם הקובץ שהעלית מהכתובת [$2]:\n\n$1",
        "upload-warning-subj": "אזהרה בהעלאה",
        "upload-warning-msg": "הייתה בעיה עם הקובץ שהעליתם מהכתובת [$2]. באפשרותכם לחזור ל[[Special:Upload/stash/$1|טופס ההעלאה]] כדי לתקן בעיה זו.",
        "upload-proto-error": "פרוטוקול שגוי",
        "shared-repo": "מקום איחסון משותף",
        "shared-repo-name-wikimediacommons": "ויקישיתוף",
        "filepage.css": "/* הסגנונות הנכתבים כאן יוכללו בדף תיאור הקובץ, כולל באתרי ויקי זרים */",
-       "upload-disallowed-here": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9b×\9d לדרוס את הקובץ הזה.",
+       "upload-disallowed-here": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9a לדרוס את הקובץ הזה.",
        "filerevert": "שחזור $1",
        "filerevert-legend": "שחזור קובץ",
        "filerevert-intro": "אתם עומדים לשחזר את הקובץ '''[[Media:$1|$1]]''' ל[$4 גרסה מ־$3, $2].",
        "filerevert-comment": "סיבה:",
        "filerevert-defaultcomment": "שוחזר לגרסה מ־$2, $1",
        "filerevert-submit": "שחזור",
-       "filerevert-success": "'''[[Media:$1|$1]]''' שוחזר ל[$4 גרסה מ־$3, $2].",
+       "filerevert-success": "<strong>[[Media:$1|$1]]</strong> שוחזר ל[$4 גרסה מ־$3, $2].",
        "filerevert-badversion": "אין גרסה מקומית קודמת של הקובץ שהועלתה בתאריך המבוקש.",
        "filedelete": "מחיקת $1",
        "filedelete-legend": "מחיקת קובץ",
        "noemailtext": "משתמש זה לא הזין כתובת דואר אלקטרוני תקינה.",
        "nowikiemailtext": "משתמש זה בחר שלא לקבל דואר אלקטרוני ממשתמשים אחרים.",
        "emailnotarget": "שם המשתמש של הנמען לא קיים או בלתי תקין.",
-       "emailtarget": "× ×\90 להזין את שם המשתמש של הנמען",
+       "emailtarget": "×\99ש להזין את שם המשתמש של הנמען",
        "emailusername": "שם משתמש:",
        "emailusernamesubmit": "שליחה",
        "email-legend": "שליחת דואר אלקטרוני למשתמש אחר של {{SITENAME}}",
        "mywatchlist": "רשימת מעקב",
        "watchlistfor2": "עבור $1 $2",
        "nowatchlist": "אין דפים ברשימת המעקב.",
-       "watchlistanontext": "×\90× ×\90 ×\94×\99×\9bנס×\95 לחשבון כדי לצפות או לערוך פריטים ברשימת המעקב.",
+       "watchlistanontext": "× ×\93רשת ×\9b× ×\99ס×\94 לחשבון כדי לצפות או לערוך פריטים ברשימת המעקב.",
        "watchnologin": "לא נכנסת לחשבון",
        "addwatch": "הוספה לרשימת המעקב",
        "addedwatchtext": "הדף \"[[:$1]]\" נוסף ל[[Special:Watchlist|רשימת המעקב]].\nשינויים שייערכו בעתיד בדף זה ובדף השיחה שלו, יוצגו ברשימת המעקב.",
        "protect-expiring-local": "פוקעת $1",
        "protect-expiry-indefinite": "בלתי מוגבלת בזמן",
        "protect-cascade": "הגנה על כל הדפים המוכללים בדף זה (הגנה מדורגת)",
-       "protect-cantedit": "×\90×\99× ×\9b×\9d ×\99×\9b×\95×\9c×\99×\9d ×\9cשנ×\95ת ×\90ת ×¨×\9eת ×\94×\94×\92× ×\94 ×¢×\9c ×\93×£ ×\96×\94, ×\9b×\99×\95×\95×\9f ×©×\90×\99×\9f ×\9c×\9b×\9d הרשאה לערוך אותו.",
+       "protect-cantedit": "×\90×\99×\9f ×\91×\90פשר×\95ת×\9a ×\9cשנ×\95ת ×\90ת ×¨×\9eת ×\94×\94×\92× ×\94 ×¢×\9c ×\93×£ ×\96×\94 ×\9b×\99×\95×\95×\9f ×©×\90×\99×\9f ×\9c×\9a הרשאה לערוך אותו.",
        "protect-othertime": "זמן אחר:",
        "protect-othertime-op": "זמן אחר",
        "protect-existing-expiry": "זמן פקיעה נוכחי: $3, $2",
        "locknoconfirm": "לא סימנת את תיבת האישור.",
        "lockdbsuccesssub": "נעילת בסיס הנתונים הושלמה בהצלחה",
        "unlockdbsuccesssub": "שוחררה הנעילה מבסיס הנתונים",
-       "lockdbsuccesstext": "×\91ס×\99ס ×\94נת×\95× ×\99×\9d × × ×¢×\9c.<br />\n× ×\90 לזכור [[Special:UnlockDB|לשחרר את הנעילה]] לאחר שפעולת התחזוקה תסתיים.",
+       "lockdbsuccesstext": "×\91ס×\99ס ×\94נת×\95× ×\99×\9d × × ×¢×\9c.<br />\n×\99ש לזכור [[Special:UnlockDB|לשחרר את הנעילה]] לאחר שפעולת התחזוקה תסתיים.",
        "unlockdbsuccesstext": "שוחררה הנעילה של בסיס הנתונים",
        "lockfilenotwritable": "קובץ נעילת בסיס הנתונים אינו ניתן לכתיבה. כדי שאפשר יהיה לנעול את בסיס הנתונים או לבטל את נעילתו, שרת האינטרנט צריך לקבל הרשאות לכתוב אליו.",
        "databasenotlocked": "בסיס הנתונים אינו נעול.",
        "movearticle": "העברת דף:",
        "moveuserpage-warning": "'''אזהרה:''' אתם עומדים להעביר דף משתמש. שימו לב שרק הדף יועבר וששם המשתמש '''לא''' ישתנה.",
        "movecategorypage-warning": "<strong>אזהרה:</strong> אתם עומדים להעביר דף קטגוריה. שימו לב שרק הדף יועבר ושכל הדפים בקטגוריה הישנה <strong>לא</strong> יסווגו לקטגוריה החדשה.",
-       "movenologintext": "עליכם [[Special:UserLogin|להיכנס לחשבון]] כדי להעביר דפים.",
+       "movenologintext": "עליכם להיות רשומים ו[[Special:UserLogin|להיכנס לחשבון]] כדי להעביר דפים.",
        "movenotallowed": "אין לך הרשאה להעביר דפים.",
        "movenotallowedfile": "אין לך הרשאה להעביר קבצים.",
        "cant-move-user-page": "אין לך הרשאה להעביר דפי משתמש (למעט דפי משנה).",
        "delete_and_move": "מחיקה והעברה",
        "delete_and_move_text": "== בקשת מחיקה ==\nדף היעד, \"[[:$1]]\", כבר קיים.\nהאם ברצונך למחוק אותו כדי לאפשר את ההעברה?",
        "delete_and_move_confirm": "אישור מחיקת הדף",
-       "delete_and_move_reason": "×\9e×\97×\99ק×\94 ×\9b×\93×\99 ×\9c×\90פשר ×\94×¢×\91ר×\94 ×\9e×\94×\9b×\95תרת \"[[$1]]\"",
+       "delete_and_move_reason": "×\9e×\97×\99ק×\94 ×\9b×\93×\99 ×\9c×\90פשר ×\94×¢×\91ר×\94 ×\9e×\94ש×\9d \"[[$1]]\"",
        "selfmove": "כותרות המקור והיעד זהות; לא ניתן להעביר דף לעצמו.",
        "immobile-source-namespace": "לא ניתן להעביר דפים במרחב השם \"$1\"",
        "immobile-target-namespace": "לא ניתן להעביר דפים למרחב השם \"$1\"",
        "protectedpagemovewarning": "'''אזהרה:''' דף זה מוגן כך שרק מפעילי מערכת יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
        "semiprotectedpagemovewarning": "'''הערה:''' דף זה מוגן כך שרק משתמשים רשומים יכולים להעביר אותו.\nפעולת היומן האחרונה מוצגת להלן:",
        "move-over-sharedrepo": "== הקובץ קיים ==\n[[:$1]] כבר קיים כקובץ משותף. העברת הקובץ לכותרת זו תדרוס את הקובץ המשותף.",
-       "file-exists-sharedrepo": "ק×\95×\91×¥ ×\91ש×\9d ×©× ×\91×\97ר ×\9b×\91ר ×§×\99×\99×\9d ×\9bק×\95×\91×¥ ×\9eש×\95תף.\n× ×\90 לבחור שם אחר.",
+       "file-exists-sharedrepo": "ק×\95×\91×¥ ×\91ש×\9d ×©× ×\91×\97ר ×\9b×\91ר ×§×\99×\99×\9d ×\9bק×\95×\91×¥ ×\9eש×\95תף.\n×\99ש לבחור שם אחר.",
        "export": "ייצוא דפים",
        "exporttext": "באפשרותכם לייצא את התוכן ואת היסטוריית העריכה של דף אחד או של מספר דפים, בתבנית של קובץ XML.\nניתן לייבא את הקובץ למיזם ויקי אחר המשתמש בתוכנת מדיה־ויקי באמצעות [[Special:Import|דף הייבוא]].\n\nכדי לייצא דפים, הקישו את שמותיהם בתיבת הטקסט שלהלן, כל שם בשורה נפרדת, ובחרו האם לייצא גם את הגרסה הנוכחית וגם את היסטוריית השינויים של הדפים, או רק את הגרסה הנוכחית עם מידע על העריכה האחרונה.\n\nבנוסף, ניתן להשתמש בקישור, כגון [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] לדף [[{{MediaWiki:Mainpage}}]] ללא היסטוריית השינויים שלו.",
        "exportall": "ייצוא כל הדפים",
        "exif-originalimageheight": "גובה התמונה לפני קיטוע",
        "exif-originalimagewidth": "רוחב התמונה לפני קיטוע",
        "exif-compression-1": "לא דחוס",
-       "exif-compression-2": "ק×\99×\93×\95×\93 ×\94×\95פ×\9e×\9f ×\9e×\95×\90תם חד־מימדי לאורך ריצה CCITT קבוצה 3",
+       "exif-compression-2": "ק×\99×\93×\95×\93 ×\94×\95פ×\9e×\9f ×\9e×\95ת×\90ם חד־מימדי לאורך ריצה CCITT קבוצה 3",
        "exif-compression-3": "קידוד פקס CCITT קבוצה 3",
        "exif-compression-4": "קידוד פקס CCITT קבוצה 4",
        "exif-compression-6": "JPEG (ישן)",
        "exif-lightsource-3": "טונגסטן (אור מתלהט)",
        "exif-lightsource-4": "מַבזק",
        "exif-lightsource-9": "מזג־אוויר נאה",
-       "exif-lightsource-10": "מזג אוויר מעונן",
+       "exif-lightsource-10": "מזג־אוויר מעונן",
        "exif-lightsource-11": "צל",
        "exif-lightsource-12": "אור יום פלואורסצנטי (D 5700 – 7100K)",
        "exif-lightsource-13": "אור יום לבן פלואורסצנטי (N 4600 – 5400K)",
        "confirmemail_oncreate": "קוד אימות דוא\"ל נשלח לכתובת הדוא\"ל שלכם. הקוד הזה אינו נדרש לכניסה, אך תצטרכו לספקו כדי להשתמש בכל תכונה מבוססת דוא\"ל באתר זה.",
        "confirmemail_sendfailed": "{{SITENAME}} לא הצליח לשלוח לכם הודעת דוא\"ל עם קוד האימות.\nאנא בדקו שאין תווים שגויים בכתובת הדוא\"ל.\n\nתוכנת שליחת הדוא\"ל החזירה את ההודעה הבאה: $1",
        "confirmemail_invalid": "קוד האימות שגוי. ייתכן שפג תוקפו.",
-       "confirmemail_needlogin": "×¢×\9c×\99×\9b×\9d $1 ×\9b×\93×\99 ×\9c×\90×\9eת ×\90ת ×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×©×\9c×\9b×\9d.",
+       "confirmemail_needlogin": "× ×\93רשת $1 ×\9b×\93×\99 ×\9c×\90×\9eת ×\90ת ×\9bת×\95×\91ת ×\94×\93×\95×\90\"×\9c ×©×\9c×\9a.",
        "confirmemail_success": "כתובת הדוא\"ל שלך אושרה.\nכעת באפשרותך [[Special:UserLogin|להיכנס לחשבון שלך]] וליהנות מהאתר.",
        "confirmemail_loggedin": "כתובת הדוא\"ל שלך אושרה כעת.",
        "confirmemail_subject": "קוד אימות דוא\"ל מ{{grammar:תחילית|{{SITENAME}}}}",
        "scarytranscludefailed-httpstatus": "[אחזור התבנית נכשל עבור $1&rlm;: HTTP $2]",
        "scarytranscludetoolong": "[כתובת ה־URL ארוכה מדי]",
        "deletedwhileediting": "<strong>אזהרה:</strong> דף זה נמחק לאחר שהתחלת לערוך!",
-       "confirmrecreate": "×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}} [[User:$1|$1]] ([[User talk:$1|ש×\99×\97×\94]]) {{GENDER:$1|×\9e×\97ק|×\9e×\97ק×\94}} ×\90ת ×\94×\93×£ ×\94×\96×\94 ×\9c×\90×\97ר ×©×\94ת×\97×\9cת ×\9cער×\95×\9a ×\90×\95ת×\95, ×\9e×\94ס×\99×\91×\94 ×\94×\91×\90×\94:\n: <em>$2</em>\n× ×\90 ×\9c×\90שר ×©ברצונך ליצור מחדש את הדף.",
-       "confirmrecreate-noreason": "×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}} [[User:$1|$1]] ([[User talk:$1|ש×\99×\97×\94]]) {{GENDER:$1|×\9e×\97ק|×\9e×\97ק×\94}} ×\90ת ×\94×\93×£ ×\94×\96×\94 ×\9c×\90×\97ר ×©×\94ת×\97×\9cת ×\9cער×\95×\9a ×\90×\95ת×\95. × ×\90 ×\9c×\90שר ×©ברצונך ליצור מחדש את הדף.",
+       "confirmrecreate": "×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}} [[User:$1|$1]] ([[User talk:$1|ש×\99×\97×\94]]) {{GENDER:$1|×\9e×\97ק|×\9e×\97ק×\94}} ×\90ת ×\94×\93×£ ×\94×\96×\94 ×\9c×\90×\97ר ×©×\94ת×\97×\9cת ×\9cער×\95×\9a ×\90×\95ת×\95, ×\9e×\94ס×\99×\91×\94 ×\94×\91×\90×\94:\n: <em>$2</em>\n×\99ש ×\9c×\90שר ×©×\90×\9b×\9f ברצונך ליצור מחדש את הדף.",
+       "confirmrecreate-noreason": "×\94{{GENDER:$1|×\9eשת×\9eש|×\9eשת×\9eשת}} [[User:$1|$1]] ([[User talk:$1|ש×\99×\97×\94]]) {{GENDER:$1|×\9e×\97ק|×\9e×\97ק×\94}} ×\90ת ×\94×\93×£ ×\94×\96×\94 ×\9c×\90×\97ר ×©×\94ת×\97×\9cת ×\9cער×\95×\9a ×\90×\95ת×\95. ×\99ש ×\9c×\90שר ×©×\90×\9b×\9f ברצונך ליצור מחדש את הדף.",
        "recreate": "יצירה מחדש",
        "confirm_purge_button": "אישור",
        "confirm-purge-top": "לנקות את המטמון של דף זה?",
        "lag-warn-high": "בגלל עיכוב בעדכון בסיס הנתונים, שינויים שבוצעו לפני פחות מ{{PLURAL:$1|שנייה אחת|־$1 שניות}} אינם מוצגים ברשימה זו.",
        "watchlistedit-normal-title": "עריכת רשימת המעקב",
        "watchlistedit-normal-legend": "הסרת דפים מרשימת המעקב",
-       "watchlistedit-normal-explain": "×\9b×\9c ×\94×\93פ×\99×\9d ×\91רש×\99×\9eת ×\94×\9eעק×\91 ×\9e×\95צ×\92×\99×\9d ×\9c×\94×\9c×\9f.\n×\9b×\93×\99 ×\9c×\94ס×\99ר ×\93×£, ×\99ש ×\9cס×\9e×\9f ×\90ת ×\94ת×\99×\91×\94 ×\9c×\99×\93×\95, ×\95×\9c×\9c×\97×\95×¥ ×¢×\9c \"{{int:Watchlistedit-normal-submit}}\".\n×\91×\90פשר×\95ת×\9b×\9d גם [[Special:EditWatchlist/raw|לערוך את הרשימה הגולמית]].",
+       "watchlistedit-normal-explain": "×\9b×\9c ×\94×\93פ×\99×\9d ×\91רש×\99×\9eת ×\94×\9eעק×\91 ×\9e×\95צ×\92×\99×\9d ×\9c×\94×\9c×\9f.\n×\9b×\93×\99 ×\9c×\94ס×\99ר ×\93×£, ×\99ש ×\9cס×\9e×\9f ×\90ת ×\94ת×\99×\91×\94 ×\9c×\99×\93×\95, ×\95×\9c×\9c×\97×\95×¥ ×¢×\9c \"{{int:Watchlistedit-normal-submit}}\".\n×\91×\90פשר×\95ת×\9a גם [[Special:EditWatchlist/raw|לערוך את הרשימה הגולמית]].",
        "watchlistedit-normal-submit": "הסרת הדפים",
        "watchlistedit-normal-done": "{{PLURAL:$1|כותרת אחת הוסרה|$1 כותרות הוסרו}} מרשימת המעקב:",
        "watchlistedit-raw-title": "עריכת הרשימה הגולמית",
index 94f3a68..ffb77f5 100644 (file)
        "watchlistedit-raw-done": "A figyelőlistád változtatásait elmentettem.",
        "watchlistedit-raw-added": "A {{PLURAL:$1|következő|következő $1}} cikket hozzáadtam a figyelőlistádhoz:",
        "watchlistedit-raw-removed": "A {{PLURAL:$1|következő|következő $1}} cikket eltávolítottam a figyelőlistádról:",
+       "watchlisttools-clear": "A figyelőlista kiürítése",
        "watchlisttools-view": "Kapcsolódó változtatások",
        "watchlisttools-edit": "A figyelőlista megtekintése és szerkesztése",
        "watchlisttools-raw": "A nyers figyelőlista szerkesztése",
index 7a6ea6e..1032b7d 100644 (file)
        "createacct-benefit-body2": "{{PLURAL:$1|ページ}}",
        "createacct-benefit-body3": "最近の{{PLURAL:$1|投稿者数}}",
        "badretype": "入力したパスワードが一致しません。",
-       "userexists": "å\85¥å\8a\9bã\81\95ã\82\8cã\81\9få\88©ç\94¨è\80\85å\90\8dã\81¯æ\97¢ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82\nä»\96ã\81®å\90\8då\89\8dã\82\92é\81¸ã\82\93ã\81§ください。",
+       "userexists": "å\85¥å\8a\9bã\81\97ã\81\9få\88©ç\94¨è\80\85å\90\8dã\81¯æ\97¢ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82\nå\88¥ã\81®å\88©ç\94¨è\80\85å\90\8dã\82\92æ\8c\87å®\9aã\81\97ã\81¦ください。",
        "loginerror": "ログインのエラー",
        "createacct-error": "アカウント作成エラー",
        "createaccounterror": "アカウントを作成できませんでした: $1",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (有効)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''無効''')",
        "mediastatistics": "メディア統計",
-       "mediastatistics-summary": "アップロードされたファイルの種類に関する統計。これはファイルの最新バージョンのみを含みます。以前のまたは削除されたバージョンについては除外されています。",
+       "mediastatistics-summary": "ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\81®ç¨®é¡\9eã\81«é\96¢ã\81\99ã\82\8bçµ±è¨\88ã\81§ã\81\99ã\80\82ã\81\93ã\82\8cã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\81®æ\9c\80æ\96°ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81®ã\81¿ã\82\92å\90«ã\81¿ã\81¾ã\81\99ã\80\82以å\89\8dã\81®ã\81¾ã\81\9fã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81«ã\81¤ã\81\84ã\81¦ã\81¯é\99¤å¤\96ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 バイト}} ($2; $3%)",
        "mediastatistics-table-mimetype": "MIMEタイプ",
        "mediastatistics-table-extensions": "取りうる拡張子",
        "mediastatistics-table-totalbytes": "合計サイズ",
        "mediastatistics-header-unknown": "不明",
        "mediastatistics-header-bitmap": "ビットマップ画像",
-       "mediastatistics-header-drawing": "線画 (ベクタイメージ)",
+       "mediastatistics-header-drawing": "ç·\9aç\94» (ã\83\99ã\82¯ã\82¿ã\83¼ã\82¤ã\83¡ã\83¼ã\82¸)",
        "mediastatistics-header-audio": "オーディオ",
        "mediastatistics-header-video": "動画",
        "mediastatistics-header-multimedia": "リッチメディア",
index 2a0da33..edc67ee 100644 (file)
        "yourtext": "당신의 편집",
        "storedversion": "현재 문서",
        "nonunicodebrowser": "'''경고: 웹 브라우저가 유니코드를 완벽하게 지원하지 않습니다.'''\n아스키가 아닌 문자가 16진수 코드로 나타날 수 있습니다.",
-       "editingold": "'''경고: 지금 이전 버전의 문서를 고치고 있습니다.'''\n이것을 저장하면 최근에 편집된 부분이 사라질 수 있습니다.",
+       "editingold": "<strong>경고: 이 문서의 오래된 판을 편집하고 있습니다.</strong>\n이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.",
        "yourdiff": "차이",
        "copyrightwarning": "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요).\n만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.\n'''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
        "copyrightwarning2": "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요.\n만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />\n또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 내용에 대해서는 $1 문서를 읽어 주세요).\n'''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
        "parser-template-recursion-depth-warning": "틀 반복 깊이 제한을 초과함 ($1)",
        "language-converter-depth-warning": "언어 변환기 실행 제한 초과($1)",
        "node-count-exceeded-category": "문서가 노드 횟수를 초과하였습니다.",
-       "node-count-exceeded-category-desc": "ë\85¸ë\93\9c í\9a\9fì\88\98를 ì´\88ê³¼í\95\98ë\8a\94 ë¬¸ì\84\9cì\9d\98 ë¶\84ë¥\98ì\9e\85니다.",
+       "node-count-exceeded-category-desc": "문ì\84\9cê°\80 ìµ\9cë\8c\80 ë\85¸ë\93\9c ì\88\98를 ì´\88ê³¼í\95©니다.",
        "node-count-exceeded-warning": "문서가 노드 수를 초과하였습니다.",
        "expansion-depth-exceeded-category": "문서가 확장 깊이를 초과하였습니다.",
        "expansion-depth-exceeded-category-desc": "최대 확장 깊이를 초과하는 문서입니다.",
        "rev-deleted-user": "(사용자 이름 삭제됨)",
        "rev-deleted-event": "(기록 동작이 제거됨)",
        "rev-deleted-user-contribs": "[사용자 이름 또는 IP 주소 삭제됨 -  기여 목록에서 편집이 숨겨짐]",
-       "rev-deleted-text-permission": "해당 편집이 문서 역사에서 '''삭제'''되었습니다.\n자세한 사항은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 볼 수 있습니다.",
-       "rev-deleted-text-unhide": "해당 편집이 문서 역사에서 '''삭제'''되었습니다.\n자세한 사항은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 볼 수 있습니다.\n이 편집을 보기를 원하신다면 [$1 해당 편집]을 볼 수 있습니다.",
-       "rev-suppressed-text-unhide": "해당 편집이 문서 역사에서 '''숨겨져''' 있습니다.\n자세한 사항은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 볼 수 있습니다.\n이 편집을 보기를 원하신다면 [$1 해당 편집]을 볼 수 있습니다.",
-       "rev-deleted-text-view": "이 문서의 편집은 역사에서 '''삭제'''되었습니다.\n삭제된 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
-       "rev-suppressed-text-view": "이 문서의 편집은 역사에서 '''숨겨져''' 있습니다.\n숨겨진 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 자세한 내용을 볼 수 있습니다.",
+       "rev-deleted-text-permission": "이 문서의 판은 <strong>삭제되어</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾을 수 있습니다.",
+       "rev-suppressed-text-permission": "이 문서의 판은 <strong>숨겨져</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.",
+       "rev-deleted-text-unhide": "이 문서의 판이 <strong>삭제되어</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾을 수 있습니다.\n이 판을 보기를 원한다면 여전히 [$1 해당 판]을 볼 수 있습니다.",
+       "rev-suppressed-text-unhide": "이 문서의 판이 <strong>숨겨져</strong> 있습니다.\n자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.\n이 판을 보기를 원한다면 여전히 [$1 해당 판]을 볼 수 있습니다.",
+       "rev-deleted-text-view": "이 문서의 판은 <strong>삭제되어</strong> 있습니다.\n삭제된 판을 볼 수 있으며 자세한 내용은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 찾을 수 있습니다.",
+       "rev-suppressed-text-view": "이 문서의 판은 <strong>숨겨져</strong> 있습니다.\n숨겨진 판을 볼 수 있으며 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 찾을 수 있습니다.",
        "rev-deleted-no-diff": "특정 판이 문서 역사에서 '''삭제'''되었기 때문에 비교할 수 없습니다.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
        "rev-suppressed-no-diff": "두 판 중 일부가 '''삭제'''되었기 때문에 문서 편집 내용을 비교할 수 없습니다.",
        "rev-deleted-unhide-diff": "이 비교에 사용된 판 가운데 하나가 '''삭제'''되었습니다.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에 자세한 내용을 찾아볼 수 있습니다.\n계속 작업하고 싶다면 여전히 [$1 비교 보기]를 계속할 수 있습니다.",
        "prefs-changeemail": "이메일 주소 바꾸기",
        "prefs-setemail": "이메일 주소 설정하기",
        "prefs-email": "이메일 설정",
-       "prefs-rendering": "문서 보기 설정",
+       "prefs-rendering": "문서 보기 설정",
        "saveprefs": "저장",
        "restoreprefs": "(모든 부분에서) 모두 기본 설정으로 되돌리기",
        "prefs-editing": "편집 상자",
        "right-deletedtext": "삭제된 문서의 내용과 편집상의 차이를 보기",
        "right-browsearchive": "삭제된 문서 검색",
        "right-undelete": "삭제된 문서 되살리기",
-       "right-suppressrevision": "관리자가 보지 못하도록 숨겨진 판을 검토하고 되살리기",
+       "right-suppressrevision": "어떤 사용자도 보지 못하도록 숨겨진 판을 검토하고 되살리기",
        "right-viewsuppressed": "어떤 사용자가 숨긴 판 보기",
        "right-suppressionlog": "숨겨진 기록을 보기",
        "right-block": "다른 사용자가 편집을 못하도록 차단",
        "recentchanges-feed-description": "이 피드에 위키의 최근 바뀜을 추적합니다.",
        "recentchanges-label-newpage": "새로 만든 문서",
        "recentchanges-label-minor": "사소한 편집",
-       "recentchanges-label-bot": "ë´\87ì\9d\98 편집",
-       "recentchanges-label-unpatrolled": "ì\95\84ì§\81 ì\88\9cì°°하지 않은 편집",
+       "recentchanges-label-bot": "ë´\87ì\9d´ ì\88\98í\96\89í\95\9c 편집",
+       "recentchanges-label-unpatrolled": "ì\95\84ì§\81 ì \90ê²\80하지 않은 편집",
        "recentchanges-label-plusminus": "바이트로 표기된 바뀐 문서 크기",
        "recentchanges-legend-heading": "'''범례:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|새 문서 목록]]도 보세요)",
        "nolicense": "선택하지 않음",
        "licenses-edit": "라이선스 옵션 편집",
        "license-nopreview": "(미리 보기 불가능)",
-       "upload_source_url": "(올바르고, 공개적으로 접근할 수 있는 URL)",
+       "upload_source_url": "(올바르고, 공개적으로 접근할 수 있는 URL에서 선택한 파일)",
        "upload_source_file": "(당신의 컴퓨터에서 선택한 파일)",
        "listfiles-delete": "삭제",
        "listfiles-summary": "이 특수 문서는 모든 올려진 파일을 보여줍니다.",
        "filedelete-maintenance-title": "파일을 삭제할 수 없습니다",
        "mimesearch": "MIME 검색",
        "mimesearch-summary": "이 페이지는 MIME 유형에 해당하는 파일을 필터합니다.\n입력: 내용종류/하위종류나 내용종류/*, 예를 들어 <code>image/jpeg</code>",
-       "mimetype": "MIME 형식:",
+       "mimetype": "MIME 종류:",
        "download": "다운로드",
        "unwatchedpages": "주시되지 않는 문서 목록",
        "listredirects": "넘겨주기 문서 목록",
        "wlheader-enotif": "이메일 알림 기능이 활성화되었습니다.",
        "wlheader-showupdated": "마지막으로 방문한 이후에 바뀐 문서는 '''굵은 글씨'''로 보입니다.",
        "wlnote": "다음은 최근 {{PLURAL:$2|'''$2'''시간}} 동안 {{PLURAL:$1|바뀐 문서 '''$1'''개 입니다}}. ($3 $4 기준)",
-       "wlshowlast": "ìµ\9cê·¼ $1ì\8b\9cê°\84 $2ì\9d¼ ë\98\90ë\8a\94  ë\8f\99ì\95\88ì\97\90 ë°\94ë\80\90 ë¬¸ì\84\9c ë³´ê¸°",
+       "wlshowlast": "ìµ\9cê·¼ $1ì\8b\9cê°\84 $2ì\9d¼ ë\8f\99ì\95\88ì\9d\98 ë°\94ë\80\9c ë³´ê¸°",
        "watchlist-options": "주시문서 목록 설정",
        "watching": "주시 추가 중…",
        "unwatching": "주시 해제 중…",
        "exbeforeblank": "비우기 전의 내용: \"$1\"",
        "delete-confirm": "\"$1\" 삭제",
        "delete-legend": "삭제",
-       "historywarning": "'''경고:''' 삭제하려는 문서에 이전 {{PLURAL:$1|편집 역사}} 약 $1개가 있습니다:",
+       "historywarning": "<strong>경고:</strong> 삭제하려고 하는 문서에 {{PLURAL:$1|판}} $1개의 역사가 있습니다:",
        "confirmdeletetext": "문서와 문서 역사를 삭제하려고 합니다.\n삭제하려는 문서가 맞는지, 이 문서를 삭제하는 것이 [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지를 확인해 주세요.",
        "actioncomplete": "동작 완료",
        "actionfailed": "명령 실패",
        "protect-existing-expiry-infinity": "기존 만료 시간: 무기한",
        "protect-otherreason": "다른 이유/추가적인 이유:",
        "protect-otherreason-op": "다른 이유",
-       "protect-dropdown": "*ì\9d¼ë°\98ì \81ì\9d¸ ë³´í\98¸ ì\9d´ì\9c \n** ë¹\88ë²\88í\95\9c í\9b¼ì\86\90 í\96\89ì\9c\84\n** ë¹\88ë²\88í\95\9c ê´\91ê³  í\96\89ì\9c\84\n** 비생산적인 편집 분쟁\n** 방문이 많은 문서",
+       "protect-dropdown": "*ì\9d¼ë°\98ì \81ì\9d¸ ë³´í\98¸ ì\9d´ì\9c \n** ë¹\88ë²\88í\95\9c í\9b¼ì\86\90 í\96\89ì\9c\84\n** ë¹\88ë²\88í\9e\88 ê´\91고를 ë\84£ì\9d\8c\n** 비생산적인 편집 분쟁\n** 방문이 많은 문서",
        "protect-edit-reasonlist": "보호 이유 편집하기",
        "protect-expiry-options": "1시간:1 hour,1일:1 day,1주일:1 week,2주일:2 weeks,1개월:1 month,3개월:3 months,6개월:6 months,1년:1 year,무기한:infinite",
        "restriction-type": "권한:",
        "import-upload": "XML 데이터 올리기",
        "import-token-mismatch": "세션 데이터가 손실되었습니다.\n다시 시도하세요.",
        "import-invalid-interwiki": "해당 위키에서 문서를 가져올 수 없습니다.",
-       "import-error-edit": "현재 문서를 편집할 권한이 없기 때문에 \"$1\" 문서를 불러올 수 없습니다.",
-       "import-error-create": "현재 문서를 만들 권한이 없기 때문에 \"$1\" 문서를 불러올 수 없습니다.",
-       "import-error-interwiki": "\"$1\" 문서는 제목이 바깥 링크(인터위키)용으로 할당되어 있기 때문에 가져오지 않습니다.",
-       "import-error-special": "\"$1\" 문서는 특수 문서에 속해 있기 때문에 가져오지 않습니다.",
-       "import-error-invalid": "\"$1\" ë¬¸ì\84\9cë\8a\94 ì \9c목ì\9d´ ì\9e\98못ë\90\98ì\97\88기 ë\95\8c문ì\97\90 ê°\80ì ¸ì\98¤ì§\80 ì\95\8a습니다.",
+       "import-error-edit": "문서를 편집할 수 없기 때문에 \"$1\" 문서를 가져올 수 없었습니다.",
+       "import-error-create": "문서를 만들 수 없기 때문에 \"$1\" 문서를 가져올 수 없었습니다.",
+       "import-error-interwiki": "\"$1\" ë¬¸ì\84\9cë\8a\94 ì \9c목ì\9d´ ë°\94ê¹¥ ë§\81í\81¬(ì\9d¸í\84°ì\9c\84í\82¤)ì\9a©ì\9c¼ë¡\9c í\95 ë\8b¹ë\90\98ì\96´ ì\9e\88기 ë\95\8c문ì\97\90 ê°\80ì ¸ì\98¤ì§\80 ì\95\8aì\95\98ì\8aµë\8b\88ë\8b¤.",
+       "import-error-special": "\"$1\" 문서는 문서가 허용하지 않는 특수 이름공간에 속해 있기 때문에 가져오지 않았습니다.",
+       "import-error-invalid": "\"$1\" ë¬¸ì\84\9cë\8a\94 ì\9d´ ì\9c\84í\82¤ì\97\90ì\84\9c ê°\80ì ¸ì\98¤ë ¤ê³  í\95\98ë\8a\94 ë¬¸ì\84\9cì\9d\98 ì\9d´ë¦\84ì\9d´ ì\98¬ë°\94르ì§\80 ì\95\8a기 ë\95\8c문ì\97\90 ê°\80ì ¸ì\98¤ì§\80 ì\95\8aì\95\98습니다.",
        "import-error-unserialize": "\"$1\" 문서의 $2 판이 일렬적이지 않습니다. $3 내용 모델을 사용하여 $4 형식으로 일렬화되도록 판을 보고했습니다.",
        "import-error-bad-location": "$3 내용 모델을 사용하는 $2 판을 이 위키의 \"$1\"에 저장할 수 없습니다. 모델을 문서에서 지원하지 않습니다.",
        "import-options-wrong": "잘못된 {{PLURAL:$2|선택 사항}}: <nowiki>$1</nowiki>",
        "logentry-pagelang-pagelang": "$1 사용자가 $3의 문서 언어를 $4에서 $5로 {{GENDER:$2|바꾸었습니다}}.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (활성화)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''비활성화''')",
-       "json-error-syntax": "구문 오류"
+       "mediastatistics": "미디어 통계",
+       "mediastatistics-summary": "올려진 파일 유형에 대한 통계입니다. 이 통계는 파일의 가장 최신 판만을 포함합니다. 오래되거나 삭제된 파일의 판은 제외됩니다.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 바이트}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME 종류",
+       "mediastatistics-table-extensions": "가능한 확장 기능",
+       "mediastatistics-table-count": "파일 수",
+       "mediastatistics-table-totalbytes": "압축된 크기",
+       "mediastatistics-header-unknown": "알 수 없음",
+       "mediastatistics-header-bitmap": "비트맵 그림",
+       "mediastatistics-header-drawing": "드로잉 (벡터 그램)",
+       "mediastatistics-header-audio": "소리",
+       "mediastatistics-header-video": "동영상",
+       "mediastatistics-header-multimedia": "리치 미디어",
+       "mediastatistics-header-office": "오피스",
+       "mediastatistics-header-text": "텍스트",
+       "mediastatistics-header-executable": "실행 파일",
+       "mediastatistics-header-archive": "압축 파일",
+       "json-error-unknown": "JSON에 문제가 있었습니다. 오류: $1",
+       "json-error-depth": "최대 스택 깊이를 초과했습니다",
+       "json-error-state-mismatch": "올바르지 않거나 잘못된 형식의 JSON",
+       "json-error-ctrl-char": "제어 문자 오류, 올바르지 않게 인코딩되어 있을 수 있습니다",
+       "json-error-syntax": "구문 오류",
+       "json-error-utf8": "잘못된 형식의 UTF-8 문자, 올바르지 않게 인코딩되어 있을 수 있습니다",
+       "json-error-recursion": "인코딩할 값에 하나 이상의 재귀 참조",
+       "json-error-inf-or-nan": "인코딩할 값에 하나 이상의 NAN이나 INF 값",
+       "json-error-unsupported-type": "인코딩할 수 없는 유형의 값을 받았습니다"
 }
index d0f68cb..b688d2e 100644 (file)
        "movearticle": "جا وه جا کردن بلگه:",
        "movenotallowed": "شما وه جا وه جا کردن بلگه دسرسی ناریت",
        "movenotallowedfile": "شما وه جا وه جا کردن جانیایا دسرسی ناریت",
+       "cant-move-category-page": "شما صلا ینه که دسه یا نه ناریت.",
        "cant-move-to-category-page": "شما صلا ینه که یه بلگه نه بوریت وه بلگه دسه ناریت.",
        "newtitle": "سی سرون هنی:",
        "move-watch": "دیئن بلگه سرچشمه و بلگه حاستنی",
        "pagemovedsub": "د خوئی جا وه جا بیه",
        "movepage-moved": "<strong>\"$1\" جا وه جا بیه سی \"$2\"</strong>",
        "movepage-moved-redirect": "یه گل واگردونی دروس بیه.",
+       "movepage-moved-noredirect": "د دروس کردن واگردونی جلوگری بیه.",
        "movetalk": "بلگه چک چنه ئم جا وه جا بوئه",
        "move-subpages": "جا وه جایی بلگه یا(تا $1 بلگه)",
+       "move-talk-subpages": "جا وه جا کردن زیر بلگه یا بلگه چک چنه (تا $1 بلگه)",
+       "movepage-page-moved": "بلگه $1 د $2 جا وه جا بیه",
+       "movepage-page-unmoved": "نبوئه بلگه $1 د $2 جا وه جا بوئه",
        "movelogpage": "جاوه جا کردن",
        "movelogpagetext": "د هار یه گل نوم گه د جا وه جایی یا بلگه هئ",
+       "movesubpage": "{{جمی:$1|زیر بلگه|زیر بلگه یا}}",
        "movenosubpage": "ای بلگه زیر بلگه نئ.",
        "movereason": "دلیل:",
        "revertmove": "لرستن",
        "delete_and_move": "پاکسا و جا وه جا بوئه",
        "delete_and_move_confirm": "هری بلگه نه پاکسا کو",
+       "delete_and_move_reason": "پاکساکاری سی ممکن بیین جا وه جایی «[[$1]]»",
+       "immobile-source-namespace": "نبوئه بلگه یا نه وه نومجا \"$1\" جا وه جا با",
+       "immobile-target-namespace": "نبوئه بلگه یا نه وه نومجا \"$1\" جا وه جا با",
+       "immobile-target-namespace-iw": "هوم پیوند مینجاویکی حاستنی مجازی سی جا وه جا کردن بلگه نئ.",
        "immobile-source-page": "ای بلگه جا وه جا کردنی نئ.",
+       "immobile-target-page": "نبوئه وه ای مقصد چنی سرونی جا وه جا بوئه.",
+       "imagenocrossnamespace": "نبوئه جانیانه وه یه گل نومجا غیرجانیایی جا وه جا بکیت",
+       "nonfile-cannot-move-to-file": "نبوئه جانیانه وه یه گل نومجا غیرجانیایی جا وه جا بکیت",
+       "imagetypemismatch": "دماون جانیا تازه وا نوع وه سازگاری ناره",
+       "imageinvalidfilename": "نوم جانیا هدف معتور نئ",
+       "fix-double-redirects": "وه هنگوم سازی همه واگردونیایی که وه گوتار اصلی هشاره میکن",
        "move-leave-redirect": "وه جا نیائن یه گل واگردونی",
        "protectedpagemovewarning": "<strong>زئنار:ای بلگه سی یه پر و پیم بیه که کاریاریایی که دسرسی دیوونداری دارن فقط بتونن دش ویرایشت بکن.</strong>\nآخرین سیائه سی سرچشمه یا د هار اماییه کاری بیه:",
        "semiprotectedpagemovewarning": "<strong>د ویر داشتویت:</strong> ای بلگه سی یه که فقط کاریاریا ثوت نام کرده تونستون دش ویرایشت بکه ن پر و پیم بیه.\nآخرین پهرستنومه دئه بیه سی سرچشمه هار نها اماییه بیه:",
        "export": "وه صحرا ديئن بلگيا",
        "exportall": "وه صحرا ديئن همه بلگيا",
+       "exportcuronly": "فقط مینونه دار وانئری ایسنی با،نه همه ویرگار نه",
+       "exportlistauthors": "مینونه دار نومگه کامل هومیاریا سی هر بلگه",
        "export-submit": "وه در ديئن",
        "export-addcattext": "اضاف کردن بلگه یا د یه گل دسه:",
        "export-addcat": "اضاف کو",
        "export-addns": "اضاف كو",
        "export-download": "ذخیره کردن جانیا",
        "export-templates": "شامل چوئه یا",
+       "export-pagelinks": "مینونه دار بیین بلگه یا هوم پیوند تا ای پی یا:",
        "allmessages": "سامونه پیغومیا",
        "allmessagesname": "نوم",
        "allmessagesdefault": "سفارشت متنی پيش فرض",
        "allmessagescurrent": "نیسسه ایسنی پیغوم",
        "allmessages-filter-legend": "فیلتر",
+       "allmessages-filter": "فیلتر کردن د اساس شخصی کردن:",
        "allmessages-filter-unmodified": "آلشت نبیه",
        "allmessages-filter-all": "همه",
        "allmessages-filter-modified": "آلشت بیه",
        "thumbnail-more": "گپ كردن",
        "filemissing": "گم بیئن جانیا",
        "thumbnail_error": "خطا د راس بیئن بن کلئکی:$1",
+       "thumbnail_error_remote": "پیغوم خطا $1 :\n$2",
+       "djvu_page_error": "بلگه DjVu وه در د حد مجاز",
+       "djvu_no_xml": "امکان پیدا کردن جانیا XML سی وه کار گرتن DjVu وجود ناشت.",
        "import": "وامین اوردن بلگه یا",
        "import-interwiki-sourcewiki": "سرچشمه ویکی:",
        "import-interwiki-sourcepage": "بلگه سرچشمه:",
        "exif-imagelength": "بلنگی",
        "exif-orientation": "سرچشمه",
        "exif-planarconfiguration": "سرجایک کردن رسینه",
+       "exif-stripoffsets": "جاگه رسینه یا عسگ",
        "exif-datetime": "آلشت دئن وخت و دمون جانیا",
        "exif-imagedescription": "نوم عسگ",
        "exif-make": "سازنه دیربین",
        "exif-usercomment": "ویر و باوریا کارور",
        "exif-relatedsoundfile": "جانیا دنگ دار مرتوط",
        "exif-datetimeoriginal": "دمون و وخت راس بیئن دونسمنیا",
+       "exif-fnumber": "ضریب اف",
        "exif-lightsource": "سرچشمه نور",
        "exif-flash": "فلش",
        "exif-flashenergy": "آز فلش",
index 4f84d23..8374c79 100644 (file)
@@ -9,7 +9,8 @@
                        "PiRSquared17",
                        "SabineCretella",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Candalua"
                ]
        },
        "tog-underline": "Sottolinia 'e jonte:",
        "version-poweredby-others": "ati",
        "version-poweredby-translators": "tradutture 'e translatewiki.net",
        "version-credits-summary": "Nuje vulessemo tené a mmente 'e perzune ccà abbascio pe' purtà rispetto a 'e cuntribbute 'e lloro ncopp'a [[Special:Version|MediaWiki]].",
+       "version-license-info": "MediaWiki è nu software libbero; vuje 'o putite redestribbuì e/o cagnà sott' 'e termine d' 'a licienza GNU GPL ('a Licienza Pubbreca Generale) comme pubbrecata d' 'a Free Software Foundation; o pure 'a verziona 2 d' 'a Licienza, o pure (comme vulite vuje) 'a n'ata verziona cchiù nnova.\n\nMediaWiki è destribbuita c' 'a speranza d'essere utile, ma SENZA NISCIUNA GARANZIA; senza manco 'a garanzia p' 'a CUMMERCIABBELETÀ O IDONIETÀ PE' NU SCOPO PARTICOLARE. Iate a vedé 'a GNU GPL pe' n'avé cchiù nfurmaziune.\n\nAvísseve 'a ricevere [{{SERVER}}{{SCRIPTPATH}}/COPYING na copia d' 'a Licienza GNU GPL] cu stu prugramma; si nò, scrivete â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html liggete sta paggena ncopp' 'a l'Internet].",
+       "version-software": "Software installato",
+       "version-software-product": "Prodotto",
+       "version-software-version": "Verziona",
+       "version-entrypoints": "Punte 'e trasuta 'e l'URL",
+       "version-entrypoints-header-entrypoint": "Punto 'e trasuta",
+       "version-entrypoints-header-url": "URL",
+       "redirect": "Rediretto 'a nu file, n'utente, na paggena o n'ID 'e na verziona",
+       "redirect-legend": "Rediretto ca spuntasse a nu file o na paggena",
+       "redirect-summary": "Sta pàggena speciale redireziona a nu file (dato 'o nomme d' 'o file), na pàggene (dato n'ID 'e verziona), o 'na pàggene utente (dato n'ID nummereca 'e l'utende). Ause: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
+       "redirect-submit": "Vaje",
+       "redirect-lookup": "Ascìa:",
+       "redirect-value": "Valore:",
+       "redirect-user": "ID utenza",
+       "redirect-page": "ID d' 'a paggena",
+       "redirect-revision": "Sarva revisione",
+       "redirect-file": "Nomme d\"o file",
+       "redirect-not-exists": "Valore nun accucchiato",
+       "fileduplicatesearch": "Ascìa 'e file duprecate",
+       "fileduplicatesearch-summary": "Circa pe' file duprecate cu bbase 'o valore hash.",
+       "fileduplicatesearch-legend": "Circa pe' nu duprecato",
+       "fileduplicatesearch-filename": "Nomme d' 'o file",
+       "fileduplicatesearch-submit": "Truova",
+       "fileduplicatesearch-info": "$1 × $2 pixel, dimenzione d' 'o file: $3<br />tipo MIME: $4",
+       "fileduplicatesearch-result-1": "'O file \"$1\" non ce tene nu duprecato eguale eguale.",
+       "fileduplicatesearch-result-n": "'O file \"$1\" tène {{PLURAL:$2|1 dupricazione|$2 dupricaziune}} eguale eguale.",
+       "fileduplicatesearch-noresults": "Nisciuno file chiamato \"$1\" è stato accucchiato.",
        "specialpages": "Paggene speciale",
+       "specialpages-note-top": "Liggenda",
+       "specialpages-note": "* Paggene speciale normale.\n* <span class=\"mw-specialpagerestricted\">Paggene speciale ch' 'e restriziune.</span>",
+       "specialpages-group-maintenance": "Report 'e manutenzione",
+       "specialpages-group-other": "Ati paggene speciale",
+       "specialpages-group-login": "Tràse o cria n'acciesso novo",
+       "specialpages-group-changes": "Cagnamiente 'e mò mò e riggistre",
+       "specialpages-group-media": "Riepileghe 'e media e carreche",
+       "specialpages-group-users": "Utente e deritte",
+       "specialpages-group-highuse": "Pàggene ausate assaje proprio",
+       "specialpages-group-pages": "Lista d' 'e paggene",
+       "specialpages-group-pagetools": "Strumiente p' 'e paggene",
+       "specialpages-group-wiki": "Data e strumiente",
+       "specialpages-group-redirects": "Redirezionamiente d' 'e paggene speciale",
+       "specialpages-group-spam": "Strumiente p' 'o spam",
+       "blankpage": "Paggene abbacante",
+       "intentionallyblankpage": "Sta paggena s'è lassata abbacante apposta",
+       "external_image_whitelist": "  #Lassate sta linea accussì accussì comme sta<pre>\n#Mettete piezze 'espressione regolare (chilla parta nfra 'e //) sotto\n#Chille s'azzeccano ch' 'e ndirizze URL 'e l'immaggine 'e fore (collegamiente cavere)\n#Chille cu nu cunfronto positivo sarranno mmustate comme immaggene, o pure comme a nu link a l'immaggine ca mmustano\n#Linee c'accumenciano pe' # songo trattate comme commente\n#Chist'è insenzitivo p' 'e maiuscole e minuscole\n\n#Mettete tutt' 'e piezze regex ncopp' 'a stalinea. Lassate sta linea eguale eguale comme 'a verite</pre>",
+       "tags": "Tag 'e cagnamiento valide",
        "tag-filter": "Filtra ppe [[Special:Tags|etichetta]]:",
+       "tag-filter-submit": "Filtra",
+       "tags-active-yes": "Sì",
+       "tags-active-no": "No",
+       "tags-edit": "càgna",
+       "tags-hitcount": "$1 {{PLURAL:$1|cagnamiento|cagnamiente}}",
+       "htmlform-no": "No",
+       "htmlform-yes": "Sì",
        "rightsnone": "(nisciuno)",
+       "feedback-cancel": "Canciella",
+       "searchsuggest-search": "Truova",
+       "api-error-filename-tooshort": "'O nomme d' 'o file è troppo curto.",
+       "api-error-filetype-banned": "Stu tipo 'e file nun è permesso.",
+       "duration-seconds": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "duration-minutes": "$1 {{PLURAL:$1|minuto|minute}}",
+       "duration-hours": "$1 {{PLURAL:$1|ora|ore}}",
+       "duration-days": "$1 {{PLURAL:$1|juorno|juorne}}",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|secondo|seconde}}",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|byte|byte}}",
+       "expand_templates_preview": "Anteprimma",
+       "pagelang-name": "Paggena",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Video",
        "json-error-unknown": "Ce sta nu probblema c' 'o JSON. Errore: $1",
        "json-error-state-mismatch": "Valore malamente furmato o nun buono p' 'o JSON",
        "json-error-syntax": "Errore 'e sintasse",
index 5cecc03..6a9519e 100644 (file)
        "otherlanguages": "På andre språk",
        "redirectedfrom": "(Omdirigert fra $1)",
        "redirectpagesub": "Omdirigeringsside",
+       "redirectto": "Omdirigering til:",
        "lastmodifiedat": "Denne siden ble sist endret $1 kl. $2.",
        "viewcount": "Denne siden er vist {{PLURAL:$1|én gang|$1 ganger}}.",
        "protectedpage": "Låst side",
        "createaccount-text": "Noen opprettet en konto for din e-postadresse på {{SITENAME}} ($4) med navnet «$2», med «$3» som passord. Du burde logge inn og endre passordet nå.\n\nDu kan ignorere denne beskjeden dersom kontoen ble opprettet ved en feil.",
        "login-throttled": "Du har prøvd å logge inn for mange ganger.\nVent $1 før du prøver på nytt.",
        "login-abort-generic": "Innleggingen ble avbrutt.",
+       "login-migrated-generic": "Kontoen din har blitt globalisert, og brukernavnet ditt finnes ikke lenger på denne wikien.",
        "loginlanguagelabel": "Språk: $1",
        "suspicious-userlogout": "Din forespørsel om å logge ut ble nektet fordi den så ut til å ha bli sendt av en ødelagt nettleser eller en mellomtjener.",
        "createacct-another-realname-tip": "Det er frivillig å oppgi ditt egentlige navn.\nHvis du velger å oppgi det, vil det blir anvendt for å gi deg som bruker anerkjennelse",
        "showpreview": "Forhåndsvisning",
        "showdiff": "Vis endringer",
        "blankarticle": "<strong>Advarsel:</strong> Siden du er i ferd med å opprette er tom.\nHvis du trykker \"{{int:savearticle}}\" en gang til, vil siden opprettes uten innhold.",
-       "anoneditwarning": "'''Advarsel:''' Du er ikke logget inn.\nIP-adressen din blir bevart i sidens redigeringshistorikk.",
+       "anoneditwarning": "<strong>Advarsel:</strong> Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du <strong>[$1 logger inn]</strong> eller <strong>[$2 oppretter en konto]</strong> vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.",
        "anonpreviewwarning": "<em>Du er ikke logget inn. Ved lagring vil IP-adressen din lagres i sidens redigeringshistorikk.</em>",
        "missingsummary": "'''Påminnelse:''' Du har ikke lagt inn en redigeringsforklaring.\nVelger du ''Lagre siden'' en gang til blir endringene lagret uten forklaring.",
        "missingcommenttext": "Vennligst legg inn en kommentar under.",
        "searchrelated": "relatert",
        "searchall": "alle",
        "showingresults": "Nedenfor vises opptil {{PLURAL:$1|'''ett''' resultat|'''$1''' resultater}} fra og med nummer <b>$2</b>.",
-       "showingresultsinrange": "Nedenfor vises opptil {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resulter}} i området #<strong>$2</strong> til #<strong>$3</strong>.",
+       "showingresultsinrange": "Nedenfor vises opptil {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resulter}} i mellom nummer <strong>$2</strong> og nummer <strong>$3</strong>.",
+       "search-showingresults": "Resultat <strong>{{PLURAL:$4|$1|$1–$2}}</strong> av <strong>$3</strong>",
        "search-nonefound": "Ingen resultater passet til søket.",
        "powersearch-legend": "Avansert søk",
        "powersearch-ns": "Søk i navnerom:",
        "querypage-disabled": "Denne spesialsiden er deaktivert av ytelsesårsaker.",
        "booksources": "Bokkilder",
        "booksources-search-legend": "Søk etter bokkilder",
+       "booksources-search": "Søk",
        "booksources-text": "Under er en liste over lenker til andre sider som selger nye og brukte bøker, og kan også ha videre informasjon om bøker du leter etter:",
        "booksources-invalid-isbn": "Det gitte ISBN-nummeret er ugyldig; sjekk om du har angitt det riktig.",
        "specialloguserlabel": "Utøver:",
        "unblocked": "[[User:$1|$1]] ble avblokkert",
        "unblocked-range": "$1 har fått løftet blokkeringen",
        "unblocked-id": "Blokkering $1 ble fjernet",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] har blitt avblokkert.",
        "blocklist": "Blokkerte brukere",
        "ipblocklist": "Blokkerte IP-adresser og brukernavn",
        "ipblocklist-legend": "Finn en blokkert bruker",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|endret}} sidespråk for $3 fra $4 til $5.",
        "default-skin-not-found": "Ops! Standarddrakten for wikien din (<code>$wgDefaultSkin</code>), <code>$1</code>, er ikke tilgjengelig.\n\nInstallasjonen din ser ut til å inneholde følgende drakter. Se [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] for informasjon om hvordan du kan slå disse på eller heller velge en standarddrakt.\n\n$2\n\n; Om du nettopp har installert MediaWiki:\n: Du har trolig installert fra git, eller direkte fra kildekoden med en annen metode. Dette er forventet. Prøv å installere noen drakter fra [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org sin draktbase] ved å\n:* laste ned [https://www.mediawiki.org/wiki/Download tarball-installereren], som kommer med flere drakter og utvidelser. Du kan kopiere og lime inn <code>skins/</code>-mappen fra denne.\n:* klone en av <code>mediawiki/skins/*</code>-lagrene via git inn i <code>skins/</code> -mappen av din MediaWiki-installasjon.\n: Å gjøre dette skal ikke forstyrre git-mappen din om du er en MediaWiki-utvikler.\n\n; Om du nettopp har oppgradert MediaWiki:\n: MediaWiki 1.24 og nyere slår ikke lenger på automatisk installerte drakter (se [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Du kan lime inn følgende linjer i <code>LocalSettings.php</code> for å slå på alle installerte drakter:\n\n<pre>$3</pre>\n\n; Om du nettopp har endret <code>LocalSettings.php</code>:\n: Dobbelsjekk draktnavnene for skrivefeil.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (slått på)",
-       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''slått av''')"
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''slått av''')",
+       "mediastatistics": "Mediestatistikk",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte}} ($2; $3 %)",
+       "mediastatistics-table-mimetype": "MIME-type",
+       "mediastatistics-table-extensions": "Mulige filtyper",
+       "mediastatistics-table-count": "Antall filer",
+       "mediastatistics-table-totalbytes": "Kombinert størrelse",
+       "mediastatistics-header-unknown": "Ukjent",
+       "mediastatistics-header-bitmap": "Bitmap-bilder",
+       "mediastatistics-header-drawing": "Tegninger (vektor-bilder)",
+       "mediastatistics-header-audio": "Lyd",
+       "mediastatistics-header-video": "Videoer",
+       "mediastatistics-header-executable": "Kjørbare filer",
+       "mediastatistics-header-archive": "Komprimerte formater",
+       "json-warn-trailing-comma": "$1 etterfølgende {{PLURAL:$1|komma|kommaer}} ble fjernet fra JSON",
+       "json-error-state-mismatch": "Ugyldig JSON",
+       "json-error-syntax": "Syntaksfeil"
 }
index 8f99453..c3eaea2 100644 (file)
        "site-atom-feed": "$1 ଆଟମ ଫିଡ଼",
        "page-rss-feed": "$1 ଟି ଆରେସେସ ଫିଡ଼",
        "page-atom-feed": "$1 ଟି ଆଟମ ଫିଡ଼",
-       "red-link-title": " $1 (ପୃଷ୍ଠାଟି ନାହିଁ)",
+       "red-link-title": "$1 (ପୃଷ୍ଠାଟି ନାହିଁ)",
        "sort-descending": "ବଡ଼ରୁ ସାନ କ୍ରମେ ସଜାନ୍ତୁ",
        "sort-ascending": "ସାନରୁ ବଡ଼ କ୍ରମେ ସଜାନ୍ତୁ",
        "nstab-main": "ପୃଷ୍ଠା",
        "searchprofile-images-tooltip": "ଫାଇଲ ସବୁ ପାଇଁ ଖୋଜିବେ",
        "searchprofile-everything-tooltip": "ପ୍ରସଙ୍ଗ ସବୁକୁ ଖୋଜିବେ (ଆଲୋଚନା ସହ)",
        "searchprofile-advanced-tooltip": "ନିଜେ ତିଆରିକରିହେବା ଭଳି ନେମସ୍ପେସରେ ଖୋଜିବେ",
-       "search-result-size": "$1 ({{PLURAL:$2|1 ଶବ୍ଦ|$2 ଶବ୍ଦ}})",
+       "search-result-size": "$1 ({{PLURAL:$2|ଗୋଟେ ଶବ୍ଦ|$2 ଟି ଶବ୍ଦ}})",
        "search-result-category-size": "{{PLURAL:$1|ଜଣେ ସଭ୍ୟ|$1 ଜଣ ସଭ୍ୟ}} ({{PLURAL:$2|ଗୋଟିଏ ଶ୍ରେଣୀy|$2ଟି ଶ୍ରେଣୀ ସମୂହ}}, {{PLURAL:$3|ଗୋଟିଏ ଫାଇଲ|$3ଟି ଫାଇଲ}})",
        "search-redirect": "($1 କୁ ଆଗକୁ ବଢେଇନିଅ )",
        "search-section": "(ଭାଗ $1)",
index 99b1600..1096fa5 100644 (file)
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Zmiany",
        "prefs-help-prefershttps": "Ta opcja zacznie działać przy twoim następnym zalogowaniu.",
+       "prefswarning-warning": "Niektóre z dokonanych zmian w preferencjach nie zostały jeszcze zapisane. Jeśli wyjdziesz bez wciśnięcia „$1”, Twoje zmiany zostaną utracone.",
        "prefs-tabs-navigation-hint": "Wskazówka: do poruszania się między zakładkami możesz użyć klawiszy strzałek w lewo i w prawo",
        "email-address-validity-valid": "Wygląda na prawidłowy",
        "email-address-validity-invalid": "Wymagany jest prawidłowy adres!",
-       "userrights": "Zarządzaj uprawnieniami użytkowników",
+       "userrights": "Zarządzanie uprawnieniami użytkowników",
        "userrights-lookup-user": "Zarządzaj grupami użytkownika",
        "userrights-user-editname": "Wprowadź nazwę użytkownika",
        "editusergroup": "Edytuj grupy użytkownika",
index d7da41b..b6f8dfe 100644 (file)
@@ -73,7 +73,8 @@
                        "Fabsouza1",
                        "아라",
                        "Jefersonmoraes",
-                       "Marcos dias de oliveira"
+                       "Marcos dias de oliveira",
+                       "He7d3r"
                ]
        },
        "tog-underline": "Sublinhar links:",
index 9acfc28..a734e03 100644 (file)
@@ -62,7 +62,8 @@
                        "555",
                        "아라",
                        "Leon saudanha",
-                       "Macofe"
+                       "Macofe",
+                       "He7d3r"
                ]
        },
        "tog-underline": "Sublinhar ligações:",
        "listgrouprights-namespaceprotection-header": "Restrições do domínio",
        "listgrouprights-namespaceprotection-namespace": "Domínio",
        "listgrouprights-namespaceprotection-restrictedto": "Direito(s) do utilizador para editar",
-       "trackingcategories": "Monitoramento de categorias",
+       "trackingcategories": "Categorias de monitoramento",
        "trackingcategories-summary": "Esta página lista as categorias monitoradas que foram geradas automaticamente pelo software MediaWiki. Os seus nomes podem ser alterados ao editar sua mensagem correspondente no domínio {{ns:8}}.",
        "trackingcategories-msg": "Categoria monitorada",
        "trackingcategories-name": "Nome da mensagem",
index fb2c89c..0917960 100644 (file)
        "laggedslavemode": "<strong>Atentzione:</strong> Sa pàgina podet non cuntènnere sos agiornamentos prus novos.",
        "readonly": "Database bloccadu",
        "enterlockreason": "Inserta su motivu de su blocu, ispetzifichende su momentu probàbile chi su blocu at a acabbare",
-       "readonlytext": "In custu momentu su database est bloccadu dae aciunturas e àteras modificas, probabilmente pro ordinaria manutentzione a su database, a pustis de custas at a èssere normale torra.\n\nS'aministradore chi dd'at bloccadu at donadu custa ispiegatzione: $1",
+       "readonlytext": "In custu momentu su database est bloccadu dae aciunturas e àteras modificas, probabilmente pro ordinaria manutentzione a su database, a pustis de custas at a èssere normale torra.\n\nS'amministradore chi dd'at bloccadu at donadu custa ispiegatzione: $1",
        "missing-article": "Su database no at agatadu su testu de una pàgina chi diat àere agatadu a suta de su nùmene \"$1\" $2.\n\nCustu a su sòlitu si verìficat cando bi est unu ligòngiu in s'istòria o in unu cunfrontu intre revisiones de una pàgina chi est istada fuliada.\n\nSi no est custu su casu, s'est agatada una faddina de su software.\nPro praghere signa s'acontèssidu a unu [[Special:ListUsers/sysop|amministradore]] ispetzifichende su URL de sa faddina.",
        "missingarticle-rev": "(revisione nùmeru: $1)",
        "missingarticle-diff": "(Dif: $1, $2)",
        "viewyourtext": "Càstia e còpia su còdighe mitza de is <strong>mudàntzias tuas</strong> in custa pàgina:",
        "protectedinterface": "Custa pàgina frunit testu pro s'interfàtzie de su programma de custa wiki, ed est amparada pro prevènnere abusos.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [//translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
        "editinginterface": "<strong>Atentzione:</strong> Ses modificande una pàgina chi est impreada pro frunire testu de s'interfàtzie pro su programma.\nCàmbios a custa pàgina ant a influentzare sa bisura de s'interfàtzie impitadore pro àteros impitadores in custa wiki.\nPro annànghere o cambiare tradutziones pro totus sas wikis, pro piaghere imprea [//translatewiki.net/ translatewiki.net], su progetu MediaWiki de localizatzione.",
-       "cascadeprotected": "Custa pàgina est istada amparada dae sas modìficas proite est incluida in {{PLURAL:$1|custa pàgina, chi est amparada|pàginas, chi sunt amparadas}} cun s'optzione \"a tzurru\":\n$2",
+       "cascadeprotected": "Custa pàgina est istada amparada dae sas modìficas proite est incluida in {{PLURAL:$1|custa pàgina, chi est amparada|custas pàginas, chi sunt amparadas}} cun s'optzione \"a tzurru\" ativada:\n$2",
        "namespaceprotected": "Non tenes su permissu de cambiare is pàginas in su nùmene-lugu '''$1'''.",
        "customcssprotected": "Non tenes sos permissos pro cambiare custa pàgina CSS proite cuntènnidi sas impostaduras pessonales de un'àteru impitadore.",
        "customjsprotected": "Non tenes sos permissos pro cambiare custa pàgina JavaScript proite cuntènnidi sas impostaduras pessonales de un'àteru impitadore.",
        "editingold": "<strong>Atentzione: Ses cambiende una versione non-agiornada de sa pàgina.</strong>\nSi dda sarbas de aici, totus is càmbios fatos a pustis de custa versione ant a bènnere pèrdidos pro semper.",
        "yourdiff": "Diferèntzias",
        "copyrightwarning": "Abbàida, pro praghere, chi totus is contributos a {{SITENAME}} sunt cunsideradas lassadas a suta permissu de tipu $2 (càstia $1 pro nde ischire de prus). Si non boles chi s'iscritu tuo potzat èssere cambiadu e re-distribuidu dae chie si siat sena piedade e sena àteros lìmites, non ddu insartas inoghe.<br />\nCun s'imbiu de custu iscritu ses garantende, a responsabilidade tua, si su iscritu ddu as cumpostu tue de persone e in originale, o puru si est istadu copiadu dae una fonte de domìniu pùblicu, o una fonte de gasi, o puru si as otentu permissu craru de impreare custu iscritu e si ddu podes dimustrare. <strong>No impreare materiale cobertu dae deretu de autore sena permissu craru!</strong>",
-       "titleprotectedwarning": "<strong>Atentzione: Custa pàgina est istada amparada pro fàghere in modu chi ant a serbire [[Special:ListGroupRights|deretos dislindados]]pro la creare.</strong>\nS'ùrtimu elementu de su registru est marcadu inoghe in suta pro referèntzia:",
+       "titleprotectedwarning": "<strong>Atentzione: Custa pàgina est istada amparada pro fàghere in modu chi ant a serbire [[Special:ListGroupRights|deretos dislindados]] pro la creare.</strong>\nS'ùrtimu elementu de su registru est marcadu inoghe in suta pro referèntzia:",
        "templatesused": "{{PLURAL:$1|Template impreadu|Templates impreados}} in custa pàgina:",
        "templatesusedpreview": "{{PLURAL:$1|Template impreadu|Templates impreados}} in custa antiprima:",
        "templatesusedsection": "{{PLURAL:$1|Template impreadu|Templates impreados}} in custa setzione:",
        "template-protected": "(bardadu)",
        "template-semiprotected": "(mesu-bardadu)",
        "hiddencategories": "Custa pàgina faghet parte de {{PLURAL:$1|1 categoria cuada|$1 categorias cuadas}}:",
-       "nocreatetext": "{{SITENAME}} at limitadu sa possibilidade de creare pàginas noas a sos impitadores registrados.\nPodes torrare in segus e modificare una pàgina esistente, [[Special:UserLogin|intrare in su contu tuo o creare unu contu nou]].",
+       "nocreatetext": "{{SITENAME}} at limitadu sa possibilidade de creare pàginas noas a sos impitadores registrados.\nPodes torrare in segus e modificare una pàgina esistente, o puru [[Special:UserLogin|intrare in su contu tuo o creare unu contu nou]].",
        "nocreate-loggedin": "Non tenes su permissu de creare pàginas noas.",
        "sectioneditnotsupported-title": "Modìfica de sas setziones non suportada",
        "sectioneditnotsupported-text": "Modìfica de sas setziones non suportada in custa pàgina.",
        "prefs-email": "Sèberos pro sa email",
        "prefs-rendering": "Aparèntzia",
        "saveprefs": "Sarba",
-       "restoreprefs": "Restàura totu is sèberos predefinidos (in totu is setziones)",
+       "restoreprefs": "Restàura totus is sèberos predefinidos (in totus is setziones)",
        "prefs-editing": "Casella de modìfica",
        "rows": "Lìnias:",
        "columns": "Colunnas:",
        "group-user-member": "{{GENDER:$1|impitadore}}",
        "group-autoconfirmed-member": "{{GENDER:$1|impitadores autocunfirmados}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
-       "group-sysop-member": "{{GENDER:$1|aministradore}}",
+       "group-sysop-member": "{{GENDER:$1|amministradore}}",
        "group-bureaucrat-member": "{{GENDER:$1|buròcrate}}",
        "group-suppress-member": "{{GENDER:$1|tzensore}}",
        "grouppage-user": "{{ns:project}}:Usuàrios",
        "specialloguserlabel": "Atzione fata dae:",
        "speciallogtitlelabel": "Atzione fata subra:",
        "log": "Registros",
-       "allpages": "Totu is pàginas",
+       "allpages": "Totus is pàginas",
        "prevpage": "Pàgina in antis ($1)",
        "allpagesfrom": "Ammustra pàginas a partire dae:",
        "allpagesto": "Ammustra pàginas fintzas a:",
-       "allarticles": "Totu is pàginas",
-       "allinnamespace": "Totu is pàginas (nùmene-logu $1)",
+       "allarticles": "Totus is pàginas",
+       "allinnamespace": "Totus is pàginas (nùmene-logu $1)",
        "allpagessubmit": "Bae",
        "allpages-bad-ns": "Su nùmene-logu \"$1\" non esistit in {{SITENAME}}.",
        "categories": "Categorias",
        "unwatchthispage": "Boga custa pàgina dae sa watchlist tua",
        "notanarticle": "Custa pàgina no est unu artìculu",
        "watchlist-details": "Tenes {{PLURAL:$1|$1 pàgina annotada paris a sa pagina de cuntierra sua|$1 pàginas annotadas paris a is pàginas de cuntierra issoro}}.",
-       "wlshowlast": "Ammustra is ùrtimas $1 oras $2 dies",
+       "wlshowlast": "Ammustra is ùrtimas $1 oras, $2 dies",
        "watchlist-options": "Optziones subra sa lista de pàginas annotadas",
        "watching": "Giunghende a sa watchlist...",
        "unwatching": "Boghende dae sa watchlist...",
        "deletepage": "Fùlia pàgina",
        "confirm": "Cunfima",
        "excontent": "su cuntènnidu fiat: '$1'",
-       "excontentauthor": "su cuntènnidu fiat: '$1' (e s'ùnicu contribudori fiat '[[Special:Contributions/$2|$2]]')",
+       "excontentauthor": "su cuntènnidu fiat: '$1' (e s'ùnicu contribudore fiat '[[Special:Contributions/$2|$2]]')",
        "delete-confirm": "Fùlia \"$1\"",
        "delete-legend": "Fuliare",
        "confirmdeletetext": "Ses acanta de burrare una pàgina cun totu su stòria sua.\nPro praxere, cunfirma ca est intentzione tua fàgher custu, ca connosches is cosseguèntzias de s'atzione tua, a ca custa est cunforma a is [[{{MediaWiki:Policy-url}}|lìnias polìticas]].",
index 3cd21d8..e65726a 100644 (file)
        "parser-unstrip-loop-warning": "Утврђена је петља",
        "parser-unstrip-recursion-limit": "Прекорачено је ограничење рекурзије ($1)",
        "converter-manual-rule-error": "Пронађена је грешка у правилу за ручно претварање језика",
-       "undo-success": "Измена се може вратити.\nПроверите разлике испод, па сачувајте измене.",
+       "undo-success": "Измена се може вратити.\nПроверите разлике испод па сачувајте измене.",
        "undo-failure": "Ова измена се не може поништити због сукоба измена.",
        "undo-norev": "Не могу да вратим измену јер не постоји или је обрисана.",
        "undo-nochange": "Изгледа да је измена већ поништена.",
        "movepage-moved": "'''„$1“ је премештена на „$2“'''",
        "movepage-moved-redirect": "Преусмерење је направљено.",
        "movepage-moved-noredirect": "Стварање преусмерења је онемогућено.",
-       "articleexists": "Страница с тим именом већ постоји, или је име неисправно.\nИзаберите друго име.",
+       "articleexists": "Страница с тим именом већ постоји или је име неисправно.\nИзаберите друго име.",
        "cantmove-titleprotected": "Не можете да преместите страницу на то место јер је жељени наслов заштићен од стварања",
        "movetalk": "Премести и страницу за разговор",
        "move-subpages": "Премести и подстранице (до $1)",
index fad5f2b..0981aa4 100644 (file)
        "parser-unstrip-loop-warning": "Utvrđena je petlja",
        "parser-unstrip-recursion-limit": "Prekoračeno je ograničenje rekurzije ($1)",
        "converter-manual-rule-error": "Pronađena je greška u pravilu za ručno pretvaranje jezika",
-       "undo-success": "Izmena se može vratiti.\nProverite razlike ispod, pa sačuvajte izmene.",
+       "undo-success": "Izmena se može vratiti.\nProverite razlike ispod pa sačuvajte izmene.",
        "undo-failure": "Ova izmena se ne može poništiti zbog sukoba izmena.",
        "undo-norev": "Ne mogu da vratim izmenu jer ne postoji ili je obrisana.",
        "undo-nochange": "Izgleda da je izmena već poništena.",
        "movepage-moved": "'''„$1“ je premeštena na „$2“'''",
        "movepage-moved-redirect": "Preusmerenje je napravljeno.",
        "movepage-moved-noredirect": "Stvaranje preusmerenja je onemogućeno.",
-       "articleexists": "Stranica s tim imenom već postoji, ili je ime neispravno.\nIzaberite drugo ime.",
+       "articleexists": "Stranica s tim imenom već postoji ili je ime neispravno.\nIzaberite drugo ime.",
        "cantmove-titleprotected": "Ne možete da premestite stranicu na to mesto jer je željeni naslov zaštićen od stvaranja",
        "movetalk": "Premesti i stranicu za razgovor",
        "move-subpages": "Premesti i podstranice (do $1)",
index e8d274a..ef9e529 100644 (file)
@@ -25,8 +25,8 @@
        },
        "tog-underline": "การขีดเส้นใต้ลิงก์:",
        "tog-hideminor": "ซ่อนการแก้ไขเล็กน้อยในหน้าปรับปรุงล่าสุด",
-       "tog-hidepatrolled": "ซ่อนการแก้ไขที่ตรวจแล้วในหน้าปรับปรุงล่าสุด",
-       "tog-newpageshidepatrolled": "à¸\8bà¹\88อà¸\99หà¸\99à¹\89าà¸\97ีà¹\88à¸\95รวà¸\88à¹\81ลà¹\89วà¸\88าà¸\81รายการหน้าใหม่",
+       "tog-hidepatrolled": "à¸\8bà¹\88อà¸\99à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\97ีà¹\88à¸\95รวà¸\88สอà¸\9aà¹\81ลà¹\89วà¹\83à¸\99หà¸\99à¹\89าà¸\9bรัà¸\9aà¸\9bรุà¸\87ลà¹\88าสุà¸\94",
+       "tog-newpageshidepatrolled": "à¸\8bà¹\88อà¸\99หà¸\99à¹\89าà¸\97ีà¹\88à¸\95รวà¸\88สอà¸\9aà¹\81ลà¹\89วà¹\83à¸\99รายการหน้าใหม่",
        "tog-extendwatchlist": "ขยายรายการเฝ้าดูให้แสดงการเปลี่ยนแปลงทั้งหมด ไม่เพียงการเปลี่ยนแปลงล่าสุด",
        "tog-usenewrc": "จัดกลุ่มการเปลี่ยนแปลงแบ่งตามหน้าในรายการปรับปรุงล่าสุดและรายการเฝ้าดู",
        "tog-numberheadings": "ใส่เลขหัวเรื่องอัตโนมัติ",
@@ -35,7 +35,7 @@
        "tog-editsectiononrightclick": "เปิดใช้งานการแก้ไขเฉพาะส่วนโดยคลิกขวาที่ชื่อเรื่องของส่วนนั้น",
        "tog-watchcreations": "เพิ่มหน้าที่ฉันสร้างและไฟล์ที่ฉันอัปโหลดเข้ารายการเฝ้าดู",
        "tog-watchdefault": "เพิ่มหน้าและไฟล์ที่ฉันแก้ไขเข้ารายการเฝ้าดู",
-       "tog-watchmoves": "à¹\80à¸\9eิà¹\88มà¹\81ละà¹\84à¸\9fลà¹\8cà¸\97ีà¹\88à¸\89ัà¸\99à¹\80à¸\9bลีà¹\88ยà¸\99à¸\8aืà¹\88อเข้ารายการเฝ้าดู",
+       "tog-watchmoves": "à¹\80à¸\9eิà¹\88มà¹\81ละà¹\84à¸\9fลà¹\8cà¸\97ีà¹\88à¸\89ัà¸\99ยà¹\89ายเข้ารายการเฝ้าดู",
        "tog-watchdeletion": "เพิ่มหน้าและไฟล์ที่ฉันลบเข้ารายการเฝ้าดู",
        "tog-watchrollback": "เพิ่มหน้าที่ฉันย้อนกลับฉุกเฉินเข้ารายการเฝ้าดู",
        "tog-minordefault": "กำหนดการแก้ไขทุกครั้งเป็นการแก้ไขเล็กน้อยโดยปริยาย",
index ce98334..2286a75 100644 (file)
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "expensive-parserfunction-warning": "<strong>警告:</strong>这个页面有太多高昂的语法功能调用。\n\n它应该少过$2次呼叫,现在有$1次呼叫。",
-       "expensive-parserfunction-category": "有过多高开销解析器函数调用的页面",
+       "expensive-parserfunction-category": "页面中有太多耗费的语法功能呼叫",
        "post-expand-template-inclusion-warning": "'''警告:'''包含模板大小过大。\n一些模板将不会包含。",
        "post-expand-template-inclusion-category": "模板包含上限已经超过的页面",
        "post-expand-template-argument-warning": "<strong>警告:</strong>本页面包含至少一个模板参数有过大扩展大小。这些参数会被略过。",
        "importlogpagetext": "管理性导入在其他wiki上有编辑历史的页面。",
        "import-logentry-upload": "通过文件上传导入[[$1]]",
        "import-logentry-upload-detail": "导入$1个{{PLURAL:$1|版本}}",
-       "import-logentry-interwiki": "跨wiki页面$1",
-       "import-logentry-interwiki-detail": "导入自$2的$1个{{PLURAL:$1|版本}}",
+       "import-logentry-interwiki": "跨wiki导入页面$1",
+       "import-logentry-interwiki-detail": "来自$2的$1个{{PLURAL:$1|版本}}已导入",
        "javascripttest": "JavaScript测试",
        "javascripttest-title": "运行$1测试",
        "javascripttest-pagetext-noframework": "本页面被保留进行JavaScript测试。",
        "log-description-pagelang": "这是页面语言更改的日志。",
        "logentry-pagelang-pagelang": "$1{{GENDER:$2|更改}}$3的页面语言:从$4改为$5。",
        "default-skin-not-found": "天哪!您在<code dir=\"ltr\">$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。您的安装版本看起来需要包含以下皮肤。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。\n\n$2\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的。希望如此。尝试通过以下方法从[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。\n\n; 如果您升级了您的MediaWiki的话:\n: MediaWiki 1.24版本起不再自动启用已安装皮肤(参见[https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery 此手册])。您可复制粘贴以下文本至您wiki的<code>LocalSettings.php</code>以启用安装的皮肤:\n\n<pre dir=\"ltr\">$3</pre>\n\n; 如果您已经修改了<code>LocalSettings.php</code>:\n: 请再次检查皮肤名以确保不存在错误拼写。",
-       "default-skin-not-found-no-skins": "天哪!您在<code>$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。而且您没有安装任何皮肤。\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的。希望如此。尝试通过以下方法从[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。",
+       "default-skin-not-found-no-skins": "天哪!您在<code>$wgDefaultSkin</code>定义的wiki默认皮肤<code>$1</code>不可用。而且您没有安装任何皮肤。\n\n; 如果您刚刚安装完了MediaWiki的话:\n: 您可能是从git库安装的,或者使用其他方法直接从源代码安装的,希望如此。这是因为MediaWiki 1.24版本起主代码库不再包含任何皮肤。尝试通过以下方法从[https://www.mediawiki.org/wiki/Special:MyLanguage/Category:All_skins mediawiki.org的皮肤存储库]安装一些皮肤:\n:* 下载[https://www.mediawiki.org/wiki/Download/zh-hans 打包安装器],这会预装一些皮肤和扩展。您可在此处复制粘贴<code>skins/</code>。\n:* 通过git直接克隆<code>mediawiki/skins/*</code>存储库中的一个至您的MediaWiki副本的<code dir=\"ltr\">skins/</code>。\n: 做这些事应该不会打扰您的git存储库如果你是MediaWiki开发人员的话。参见MediaWiki官网手册[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Skin_configuration “皮肤配置”]获取如何启用他们并设置为默认。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2(已启用)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2('''已禁用''')",
        "mediastatistics": "媒体统计",
index b3afe53..4bec076 100644 (file)
        "confirmemail_body": "不明人士 (可能是您自己,來自 IP 位址 $1)  已在 {{SITENAME}} 註冊了一個帳號 \"$2\" 並使用了此電子郵件位址。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "confirmemail_body_changed": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址更改至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
        "confirmemail_body_set": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址設定至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以啟用在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
-       "confirmemail_invalidated": "已取消電子郵件址確認",
+       "confirmemail_invalidated": "已取消電子郵件址確認",
        "invalidateemail": "取消電子郵件確認",
        "scarytranscludedisabled": "[Interwiki 轉換代碼不可用]",
        "scarytranscludefailed": "[樣版 $1 讀取失敗]",
index b8dc554..a9f7d8b 100644 (file)
@@ -38,16 +38,19 @@ class ShowJobs extends Maintenance {
                parent::__construct();
                $this->mDescription = "Show number of jobs waiting in master database";
                $this->addOption( 'group', 'Show number of jobs per job type' );
-               $this->addOption(
-                       'list',
-                       'Show a complete list of all jobs in a machine-readable format, instead of statistics'
-               );
+               $this->addOption( 'list',
+                       'Show a list of all jobs in a machine-readable format, instead of statistics' );
+               $this->addOption( 'type', 'Only show/count jobs of a given type', false, true );
        }
 
        public function execute() {
+               $filterType = $this->getOption( 'type', '' );
                $group = JobQueueGroup::singleton();
                if ( $this->hasOption( 'list' ) ) {
                        foreach ( $group->getQueueTypes() as $type ) {
+                               if ( $filterType != '' && $type != $filterType ) {
+                                       continue;
+                               }
                                $queue = $group->get( $type );
                                foreach ( $queue->getAllQueuedJobs() as $job ) {
                                        $this->output( $job->toString() . " status=unclaimed\n" );
@@ -58,6 +61,9 @@ class ShowJobs extends Maintenance {
                        }
                } elseif ( $this->hasOption( 'group' ) ) {
                        foreach ( $group->getQueueTypes() as $type ) {
+                               if ( $filterType != '' && $type != $filterType ) {
+                                       continue;
+                               }
                                $queue = $group->get( $type );
                                $delayed = $queue->getDelayedCount();
                                $pending = $queue->getSize();
@@ -75,6 +81,9 @@ class ShowJobs extends Maintenance {
                } else {
                        $count = 0;
                        foreach ( $group->getQueueTypes() as $type ) {
+                               if ( $filterType != '' && $type != $filterType ) {
+                                       continue;
+                               }
                                $count += $group->get( $type )->getSize();
                        }
                        $this->output( "$count\n" );
index 53759a6..7c2e8b3 100644 (file)
@@ -1573,11 +1573,11 @@ return array(
                ),
                'skinScripts' => array(
                        'default' => 'resources/lib/oojs-ui/oojs-ui-apex.js',
-                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-minerva.js',
+                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.js',
                ),
                'skinStyles' => array(
                        'default' => 'resources/lib/oojs-ui/oojs-ui-apex.svg.css',
-                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-minerva.svg.css',
+                       'minerva' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css',
                ),
                'messages' => array(
                        'ooui-outline-control-move-down',
index b85c8e8..bb0642e 100644 (file)
                postWithToken: function ( tokenType, params, ajaxOptions ) {
                        var api = this;
 
-                       // Do not allow deprecated ok-callback
-                       // FIXME: Remove this check when the deprecated ok-callback is removed in #post
-                       if ( $.isFunction( ajaxOptions ) ) {
-                               ajaxOptions = undefined;
-                       }
-
                        return api.getToken( tokenType, params.assert ).then( function ( token ) {
                                params.token = token;
                                return api.post( params, ajaxOptions ).then(
index d3220cc..ec9888f 100644 (file)
 .button-colors(@bgColor) {
        background: @bgColor;
 
-       &:hover {
+       &:hover,
+       &:focus {
                // The inner bottom bevel should match the active background color.
                box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
                border-bottom-color: mix(#000, @bgColor, 20%);
-       }
-
-       &:focus {
-               box-shadow:inset 0px 0px 0px 3px rgba(0, 0, 0, 20%);
-//             box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
                outline: none;
                // remove outline in Firefox
                &::-moz-focus-inner {
                        border-color: transparent;
                }
-
        }
 
        &:active,
index 1a58170..f0fb7b9 100644 (file)
        }
 }
 
-.mixin-mw-ui-anchor-styles-quiet( @mainColor ) {
-       color: @colorTextLight;
-       text-decoration: none;
-
-       &:hover {
-               color: @mainColor;
-       }
-       &:focus, &:active {
-               color: darken( @mainColor, @colorDarkenPercentage );
-       }
-}
-
 /*
 Anchors
 
@@ -42,16 +30,16 @@ having to assign it as a button type. mw-ui-anchor only changes the text color,
 with other base classes, such as mw-ui-button.
 
 Markup:
-<a href=# class="mw-ui-anchor mw-ui-progressive {$modifiers}">Progressive</a>
-<a href=# class="mw-ui-anchor mw-ui-constructive {$modifiers}">Constructive</a>
-<a href=# class="mw-ui-anchor mw-ui-destructive {$modifiers}">Destructive</a>
+<a href="#" class="mw-ui-anchor mw-ui-progressive">Progressive</a>
+<a href="#" class="mw-ui-anchor mw-ui-constructive">Constructive</a>
+<a href="#" class="mw-ui-anchor mw-ui-destructive">Destructive</a>
 
 .mw-ui-quiet - Quiet until interaction.
 
 Styleguide 6.2.
 */
 
-// Setup compound anchor selectors (such as .mw-ui-anchor.my-ui-progressive)
+// Setup compound anchor selectors (such as .mw-ui-anchor.mw-ui-progressive)
 .mw-ui-anchor {
        &.mw-ui-progressive {
                .mixin-mw-ui-anchor-styles( @colorProgressive );
@@ -65,3 +53,28 @@ Styleguide 6.2.
                .mixin-mw-ui-anchor-styles( @colorDestructive );
        }
 }
+
+/*
+Quiet anchors
+
+Use quiet anchors when they are less important and alongside other progressive/destructive/progressive
+anchors. Use of quiet anchors is not recommended on mobile/tablet due to lack of hover state.
+
+Markup:
+<a href="#" class="mw-ui-anchor mw-ui-progressive mw-ui-quiet">Progressive</a>
+<a href="#" class="mw-ui-anchor mw-ui-constructive mw-ui-quiet">Constructive</a>
+<a href="#" class="mw-ui-anchor mw-ui-destructive mw-ui-quiet">Destructive</a>
+
+Styleguide 6.2.1.
+*/
+.mixin-mw-ui-anchor-styles-quiet( @mainColor ) {
+       color: @colorTextLight;
+       text-decoration: none;
+
+       &:hover {
+               color: @mainColor;
+       }
+       &:focus, &:active {
+               color: darken( @mainColor, @colorDarkenPercentage );
+       }
+}
index 01c481d..2512d49 100644 (file)
@@ -47,7 +47,7 @@
        // Container styling
        .button-colors(#FFF);
        border-radius: @borderRadius;
-       min-width: 70px;
+       min-width: 4em;
 
        // Ensure that buttons and inputs are nicely aligned when they have differing heights
        vertical-align: middle;
 
        // Quiet buttons
        //
-       // Use quiet buttons when they are less important and alongisde other progressive/destructive/progressive buttons.
+       // Use quiet buttons when they are less important and alongside other constructive/progressive/destructive buttons.
+       // Use of quiet buttons is not recommended on mobile/tablet due to lack of hover state.
        //
        // Markup:
        // <div>
index ce190e5..4204c29 100644 (file)
 //   <input type="checkbox" id="kss-example-5"><label for="kss-example-5">Standard checkbox</label>
 // </div>
 // <div class="mw-ui-checkbox">
-//   <input type="checkbox" id="kss-example-5-2" disabled><label for="kss-example-5-2">Disabled checkbox</label>
+//   <input type="checkbox" id="kss-example-5-checked" checked><label for="kss-example-5-checked">Standard checked checkbox</label>
+// </div>
+// <div class="mw-ui-checkbox">
+//   <input type="checkbox" id="kss-example-5-disabled" disabled><label for="kss-example-5-disabled">Disabled checkbox</label>
+// </div>
+// <div class="mw-ui-checkbox">
+//   <input type="checkbox" id="kss-example-5-disabled-checked" disabled checked><label for="kss-example-5-disabled-checked">Disabled checked checkbox</label>
 // </div>
 //
 // Styleguide 5.
index 59ffb90..fbd2c31 100644 (file)
@@ -179,6 +179,18 @@ class HttpTest extends MediaWikiTestCase {
         * Constant values are from PHP 5.3.28 using cURL 7.24.0
         * @see http://php.net/manual/en/curl.constants.php
         *
+        * All constant values are present so that developers don’t need to remember
+        * to add them if added at a later date. The commented out constants were
+        * not found anywhere in the MediaWiki core code.
+        *
+        * Commented out constants that were not available in:
+        * HipHop VM 3.3.0 (rel)
+        * Compiler: heads/master-0-g08810d920dfff59e0774cf2d651f92f13a637175
+        * Repo schema: 3214fc2c684a4520485f715ee45f33f2182324b1
+        * Extension API: 20140829
+        *
+        * Commented out constants that were removed in PHP 5.6.0
+        *
         * @covers CurlHttpRequest::execute
         */
        public function provideCurlConstants() {
@@ -189,11 +201,11 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLAUTH_DIGEST' ),
                        array( 'CURLAUTH_GSSNEGOTIATE' ),
                        array( 'CURLAUTH_NTLM' ),
-                       array( 'CURLCLOSEPOLICY_CALLBACK' ),
-                       array( 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ),
-                       array( 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ),
-                       array( 'CURLCLOSEPOLICY_OLDEST' ),
-                       array( 'CURLCLOSEPOLICY_SLOWEST' ),
+                       // array( 'CURLCLOSEPOLICY_CALLBACK' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_OLDEST' ), // removed in PHP 5.6.0
+                       // array( 'CURLCLOSEPOLICY_SLOWEST' ), // removed in PHP 5.6.0
                        array( 'CURLE_ABORTED_BY_CALLBACK' ),
                        array( 'CURLE_BAD_CALLING_ORDER' ),
                        array( 'CURLE_BAD_CONTENT_ENCODING' ),
@@ -245,7 +257,7 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLE_RECV_ERROR' ),
                        array( 'CURLE_SEND_ERROR' ),
                        array( 'CURLE_SHARE_IN_USE' ),
-                       array( 'CURLE_SSH' ),
+                       // array( 'CURLE_SSH' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLE_SSL_CACERT' ),
                        array( 'CURLE_SSL_CERTPROBLEM' ),
                        array( 'CURLE_SSL_CIPHER' ),
@@ -263,14 +275,14 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLFTPAUTH_DEFAULT' ),
                        array( 'CURLFTPAUTH_SSL' ),
                        array( 'CURLFTPAUTH_TLS' ),
-                       array( 'CURLFTPMETHOD_MULTICWD' ),
-                       array( 'CURLFTPMETHOD_NOCWD' ),
-                       array( 'CURLFTPMETHOD_SINGLECWD' ),
+                       // array( 'CURLFTPMETHOD_MULTICWD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLFTPMETHOD_NOCWD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLFTPMETHOD_SINGLECWD' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLFTPSSL_ALL' ),
                        array( 'CURLFTPSSL_CONTROL' ),
                        array( 'CURLFTPSSL_NONE' ),
                        array( 'CURLFTPSSL_TRY' ),
-                       array( 'CURLINFO_CERTINFO' ),
+                       // array( 'CURLINFO_CERTINFO' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLINFO_CONNECT_TIME' ),
                        array( 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' ),
                        array( 'CURLINFO_CONTENT_LENGTH_UPLOAD' ),
@@ -285,7 +297,7 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLINFO_PRIVATE' ),
                        array( 'CURLINFO_REDIRECT_COUNT' ),
                        array( 'CURLINFO_REDIRECT_TIME' ),
-                       array( 'CURLINFO_REDIRECT_URL' ),
+                       // array( 'CURLINFO_REDIRECT_URL' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLINFO_REQUEST_SIZE' ),
                        array( 'CURLINFO_SIZE_DOWNLOAD' ),
                        array( 'CURLINFO_SIZE_UPLOAD' ),
@@ -306,8 +318,8 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_BUFFERSIZE' ),
                        array( 'CURLOPT_CAINFO' ),
                        array( 'CURLOPT_CAPATH' ),
-                       array( 'CURLOPT_CERTINFO' ),
-                       array( 'CURLOPT_CLOSEPOLICY' ),
+                       // array( 'CURLOPT_CERTINFO' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_CLOSEPOLICY' ), // removed in PHP 5.6.0
                        array( 'CURLOPT_CONNECTTIMEOUT' ),
                        array( 'CURLOPT_CONNECTTIMEOUT_MS' ),
                        array( 'CURLOPT_COOKIE' ),
@@ -331,8 +343,8 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_FTPPORT' ),
                        array( 'CURLOPT_FTPSSLAUTH' ),
                        array( 'CURLOPT_FTP_CREATE_MISSING_DIRS' ),
-                       array( 'CURLOPT_FTP_FILEMETHOD' ),
-                       array( 'CURLOPT_FTP_SKIP_PASV_IP' ),
+                       // array( 'CURLOPT_FTP_FILEMETHOD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_FTP_SKIP_PASV_IP' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_FTP_SSL' ),
                        array( 'CURLOPT_FTP_USE_EPRT' ),
                        array( 'CURLOPT_FTP_USE_EPSV' ),
@@ -348,14 +360,14 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_INFILESIZE' ),
                        array( 'CURLOPT_INTERFACE' ),
                        array( 'CURLOPT_IPRESOLVE' ),
-                       array( 'CURLOPT_KEYPASSWD' ),
+                       // array( 'CURLOPT_KEYPASSWD' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_KRB4LEVEL' ),
                        array( 'CURLOPT_LOW_SPEED_LIMIT' ),
                        array( 'CURLOPT_LOW_SPEED_TIME' ),
                        array( 'CURLOPT_MAXCONNECTS' ),
                        array( 'CURLOPT_MAXREDIRS' ),
-                       array( 'CURLOPT_MAX_RECV_SPEED_LARGE' ),
-                       array( 'CURLOPT_MAX_SEND_SPEED_LARGE' ),
+                       // array( 'CURLOPT_MAX_RECV_SPEED_LARGE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_MAX_SEND_SPEED_LARGE' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_NETRC' ),
                        array( 'CURLOPT_NOBODY' ),
                        array( 'CURLOPT_NOPROGRESS' ),
@@ -367,7 +379,7 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_POSTREDIR' ),
                        array( 'CURLOPT_PRIVATE' ),
                        array( 'CURLOPT_PROGRESSFUNCTION' ),
-                       array( 'CURLOPT_PROTOCOLS' ),
+                       // array( 'CURLOPT_PROTOCOLS' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_PROXY' ),
                        array( 'CURLOPT_PROXYAUTH' ),
                        array( 'CURLOPT_PROXYPORT' ),
@@ -379,14 +391,14 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_RANGE' ),
                        array( 'CURLOPT_READDATA' ),
                        array( 'CURLOPT_READFUNCTION' ),
-                       array( 'CURLOPT_REDIR_PROTOCOLS' ),
+                       // array( 'CURLOPT_REDIR_PROTOCOLS' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_REFERER' ),
                        array( 'CURLOPT_RESUME_FROM' ),
                        array( 'CURLOPT_RETURNTRANSFER' ),
-                       array( 'CURLOPT_SSH_AUTH_TYPES' ),
-                       array( 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ),
-                       array( 'CURLOPT_SSH_PRIVATE_KEYFILE' ),
-                       array( 'CURLOPT_SSH_PUBLIC_KEYFILE' ),
+                       // array( 'CURLOPT_SSH_AUTH_TYPES' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_SSH_PRIVATE_KEYFILE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLOPT_SSH_PUBLIC_KEYFILE' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLOPT_SSLCERT' ),
                        array( 'CURLOPT_SSLCERTPASSWD' ),
                        array( 'CURLOPT_SSLCERTTYPE' ),
@@ -414,28 +426,28 @@ class HttpTest extends MediaWikiTestCase {
                        array( 'CURLOPT_VERBOSE' ),
                        array( 'CURLOPT_WRITEFUNCTION' ),
                        array( 'CURLOPT_WRITEHEADER' ),
-                       array( 'CURLPROTO_ALL' ),
-                       array( 'CURLPROTO_DICT' ),
-                       array( 'CURLPROTO_FILE' ),
-                       array( 'CURLPROTO_FTP' ),
-                       array( 'CURLPROTO_FTPS' ),
-                       array( 'CURLPROTO_HTTP' ),
-                       array( 'CURLPROTO_HTTPS' ),
-                       array( 'CURLPROTO_LDAP' ),
-                       array( 'CURLPROTO_LDAPS' ),
-                       array( 'CURLPROTO_SCP' ),
-                       array( 'CURLPROTO_SFTP' ),
-                       array( 'CURLPROTO_TELNET' ),
-                       array( 'CURLPROTO_TFTP' ),
+                       // array( 'CURLPROTO_ALL' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_DICT' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_FILE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_FTP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_FTPS' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_HTTP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_HTTPS' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_LDAP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_LDAPS' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_SCP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_SFTP' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_TELNET' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLPROTO_TFTP' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLPROXY_HTTP' ),
-                       array( 'CURLPROXY_SOCKS4' ),
+                       // array( 'CURLPROXY_SOCKS4' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLPROXY_SOCKS5' ),
-                       array( 'CURLSSH_AUTH_DEFAULT' ),
-                       array( 'CURLSSH_AUTH_HOST' ),
-                       array( 'CURLSSH_AUTH_KEYBOARD' ),
-                       array( 'CURLSSH_AUTH_NONE' ),
-                       array( 'CURLSSH_AUTH_PASSWORD' ),
-                       array( 'CURLSSH_AUTH_PUBLICKEY' ),
+                       // array( 'CURLSSH_AUTH_DEFAULT' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_HOST' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_KEYBOARD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_NONE' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_PASSWORD' ), // not present in HHVM 3.3.0-dev
+                       // array( 'CURLSSH_AUTH_PUBLICKEY' ), // not present in HHVM 3.3.0-dev
                        array( 'CURLVERSION_NOW' ),
                        array( 'CURL_HTTP_VERSION_1_0' ),
                        array( 'CURL_HTTP_VERSION_1_1' ),
@@ -457,8 +469,8 @@ class HttpTest extends MediaWikiTestCase {
        }
 
        /**
-        * Added this test based on an issue experienced with hhvm where it did
-        * not define a cURL constant.
+        * Added this test based on an issue experienced with HHVM 3.3.0-dev
+        * where it did not define a cURL constant.
         *
         * @bug 70570
         * @dataProvider provideCurlConstants
diff --git a/tests/phpunit/includes/PrefixSearchTest.php b/tests/phpunit/includes/PrefixSearchTest.php
new file mode 100644 (file)
index 0000000..63dcc3f
--- /dev/null
@@ -0,0 +1,134 @@
+<?php
+/**
+ * @group Search
+ * @group Database
+ */
+class PrefixSearchTest extends MediaWikiTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+
+               // Avoid special pages from extensions interferring with the tests
+               $this->setMwGlobals( 'wgSpecialPages', array() );
+       }
+
+       protected function searchProvision( Array $results = null ) {
+               if ( $results === null ) {
+                       $this->setMwGlobals( 'wgHooks', array() );
+               } else {
+                       $this->setMwGlobals( 'wgHooks', array(
+                               'PrefixSearchBackend' => array(
+                                       function ( $namespaces, $search, $limit, &$srchres ) use ( $results ) {
+                                               $srchres = $results;
+                                               return false;
+                                       }
+                               ),
+                       ) );
+               }
+       }
+
+       public function addDBData() {
+               $this->insertPage( 'Sandbox' );
+
+               $this->insertPage( 'Example' );
+               $this->insertPage( 'Example Bar' );
+               $this->insertPage( 'Example Foo' );
+               $this->insertPage( 'Example Foo/Bar' );
+               $this->insertPage( 'Example/Baz' );
+
+               $this->insertPage( 'Talk:Sandbox' );
+               $this->insertPage( 'Talk:Example' );
+
+               $this->insertPage( 'User:Example' );
+       }
+
+       public static function provideSearch() {
+               return array(
+                       array( array(
+                               'Empty string',
+                               'query' => '',
+                               'results' => array(),
+                       ) ),
+                       array( array(
+                               'Main namespace with title prefix',
+                               'query' => 'Ex',
+                               'results' => array(
+                                       'Example',
+                                       'Example/Baz',
+                                       'Example Bar',
+                               ),
+                       ) ),
+                       array( array(
+                               'Talk namespace prefix',
+                               'query' => 'Talk:',
+                               'results' => array(
+                                       'Talk:Example',
+                                       'Talk:Sandbox',
+                               ),
+                       ) ),
+                       array( array(
+                               'User namespace prefix',
+                               'query' => 'User:',
+                               'results' => array(
+                                       'User:Example',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special namespace prefix',
+                               'query' => 'Special:',
+                               'results' => array(
+                                       'Special:ActiveUsers',
+                                       'Special:AllMessages',
+                                       'Special:AllMyFiles',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special namespace with prefix',
+                               'query' => 'Special:Un',
+                               'results' => array(
+                                       'Special:Unblock',
+                                       'Special:UncategorizedCategories',
+                                       'Special:UncategorizedFiles',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special page name',
+                               'query' => 'Special:EditWatchlist',
+                               'results' => array(
+                                       'Special:EditWatchlist',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special page subpages',
+                               'query' => 'Special:EditWatchlist/',
+                               'results' => array(
+                                       'Special:EditWatchlist/clear',
+                                       'Special:EditWatchlist/raw',
+                               ),
+                       ) ),
+                       array( array(
+                               'Special page subpages with prefix',
+                               'query' => 'Special:EditWatchlist/cl',
+                               'results' => array(
+                                       'Special:EditWatchlist/clear',
+                               ),
+                       ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideSearch
+        * @covers PrefixSearch::search
+        * @covers PrefixSearch::searchBackend
+        */
+       public function testSearch( Array $case ) {
+               $this->searchProvision( null );
+               $searcher = new StringPrefixSearch;
+               $results = $searcher->search( $case['query'], 3 );
+               $this->assertEquals(
+                       $case['results'],
+                       $results,
+                       $case[0]
+               );
+       }
+}
diff --git a/tests/phpunit/includes/installer/DatabaseUpdaterTest.php b/tests/phpunit/includes/installer/DatabaseUpdaterTest.php
new file mode 100644 (file)
index 0000000..29c3052
--- /dev/null
@@ -0,0 +1,279 @@
+<?php
+
+class DatabaseUpdaterTest extends MediaWikiTestCase {
+
+       public function testSetAppliedUpdates() {
+               $db = new FakeDatabase();
+               $dbu = new FakeDatabaseUpdater( $db );
+               $dbu->setAppliedUpdates( "test", array() );
+               $expected = "updatelist-test-" . time() . "0";
+               $actual = $db->lastInsertData['ul_key'];
+               $this->assertEquals( $expected, $actual, var_export( $db->lastInsertData, true ) );
+               $dbu->setAppliedUpdates( "test", array() );
+               $expected = "updatelist-test-" . time() . "1";
+               $actual = $db->lastInsertData['ul_key'];
+               $this->assertEquals( $expected, $actual, var_export( $db->lastInsertData, true ) );
+       }
+}
+
+class FakeDatabase extends DatabaseBase {
+       public $lastInsertTable;
+       public $lastInsertData;
+
+       function __construct() {
+       }
+
+       function clearFlag( $arg ) {
+       }
+
+       function setFlag( $arg ) {
+       }
+
+       public function insert( $table, $a, $fname = __METHOD__, $options = array() ) {
+               $this->lastInsertTable = $table;
+               $this->lastInsertData = $a;
+       }
+
+       /**
+        * Get the type of the DBMS, as it appears in $wgDBtype.
+        *
+        * @return string
+        */
+       function getType() {
+               // TODO: Implement getType() method.
+       }
+
+       /**
+        * Open a connection to the database. Usually aborts on failure
+        *
+        * @param string $server Database server host
+        * @param string $user Database user name
+        * @param string $password Database user password
+        * @param string $dbName Database name
+        * @return bool
+        * @throws DBConnectionError
+        */
+       function open( $server, $user, $password, $dbName ) {
+               // TODO: Implement open() method.
+       }
+
+       /**
+        * Fetch the next row from the given result object, in object form.
+        * Fields can be retrieved with $row->fieldname, with fields acting like
+        * member variables.
+        * If no more rows are available, false is returned.
+        *
+        * @param ResultWrapper|stdClass $res Object as returned from DatabaseBase::query(), etc.
+        * @return stdClass|bool
+        * @throws DBUnexpectedError Thrown if the database returns an error
+        */
+       function fetchObject( $res ) {
+               // TODO: Implement fetchObject() method.
+       }
+
+       /**
+        * Fetch the next row from the given result object, in associative array
+        * form. Fields are retrieved with $row['fieldname'].
+        * If no more rows are available, false is returned.
+        *
+        * @param ResultWrapper $res Result object as returned from DatabaseBase::query(), etc.
+        * @return array|bool
+        * @throws DBUnexpectedError Thrown if the database returns an error
+        */
+       function fetchRow( $res ) {
+               // TODO: Implement fetchRow() method.
+       }
+
+       /**
+        * Get the number of rows in a result object
+        *
+        * @param mixed $res A SQL result
+        * @return int
+        */
+       function numRows( $res ) {
+               // TODO: Implement numRows() method.
+       }
+
+       /**
+        * Get the number of fields in a result object
+        * @see http://www.php.net/mysql_num_fields
+        *
+        * @param mixed $res A SQL result
+        * @return int
+        */
+       function numFields( $res ) {
+               // TODO: Implement numFields() method.
+       }
+
+       /**
+        * Get a field name in a result object
+        * @see http://www.php.net/mysql_field_name
+        *
+        * @param mixed $res A SQL result
+        * @param int $n
+        * @return string
+        */
+       function fieldName( $res, $n ) {
+               // TODO: Implement fieldName() method.
+       }
+
+       /**
+        * Get the inserted value of an auto-increment row
+        *
+        * The value inserted should be fetched from nextSequenceValue()
+        *
+        * Example:
+        * $id = $dbw->nextSequenceValue( 'page_page_id_seq' );
+        * $dbw->insert( 'page', array( 'page_id' => $id ) );
+        * $id = $dbw->insertId();
+        *
+        * @return int
+        */
+       function insertId() {
+               // TODO: Implement insertId() method.
+       }
+
+       /**
+        * Change the position of the cursor in a result object
+        * @see http://www.php.net/mysql_data_seek
+        *
+        * @param mixed $res A SQL result
+        * @param int $row
+        */
+       function dataSeek( $res, $row ) {
+               // TODO: Implement dataSeek() method.
+       }
+
+       /**
+        * Get the last error number
+        * @see http://www.php.net/mysql_errno
+        *
+        * @return int
+        */
+       function lastErrno() {
+               // TODO: Implement lastErrno() method.
+       }
+
+       /**
+        * Get a description of the last error
+        * @see http://www.php.net/mysql_error
+        *
+        * @return string
+        */
+       function lastError() {
+               // TODO: Implement lastError() method.
+       }
+
+       /**
+        * mysql_fetch_field() wrapper
+        * Returns false if the field doesn't exist
+        *
+        * @param string $table Table name
+        * @param string $field Field name
+        *
+        * @return Field
+        */
+       function fieldInfo( $table, $field ) {
+               // TODO: Implement fieldInfo() method.
+       }
+
+       /**
+        * Get information about an index into an object
+        * @param string $table Table name
+        * @param string $index Index name
+        * @param string $fname Calling function name
+        * @return mixed Database-specific index description class or false if the index does not exist
+        */
+       function indexInfo( $table, $index, $fname = __METHOD__ ) {
+               // TODO: Implement indexInfo() method.
+       }
+
+       /**
+        * Get the number of rows affected by the last write query
+        * @see http://www.php.net/mysql_affected_rows
+        *
+        * @return int
+        */
+       function affectedRows() {
+               // TODO: Implement affectedRows() method.
+       }
+
+       /**
+        * Wrapper for addslashes()
+        *
+        * @param string $s String to be slashed.
+        * @return string Slashed string.
+        */
+       function strencode( $s ) {
+               // TODO: Implement strencode() method.
+       }
+
+       /**
+        * Returns a wikitext link to the DB's website, e.g.,
+        *   return "[http://www.mysql.com/ MySQL]";
+        * Should at least contain plain text, if for some reason
+        * your database has no website.
+        *
+        * @return string Wikitext of a link to the server software's web site
+        */
+       function getSoftwareLink() {
+               // TODO: Implement getSoftwareLink() method.
+       }
+
+       /**
+        * A string describing the current software version, like from
+        * mysql_get_server_info().
+        *
+        * @return string Version information from the database server.
+        */
+       function getServerVersion() {
+               // TODO: Implement getServerVersion() method.
+       }
+
+       /**
+        * Closes underlying database connection
+        * @since 1.20
+        * @return bool Whether connection was closed successfully
+        */
+       protected function closeConnection() {
+               // TODO: Implement closeConnection() method.
+       }
+
+       /**
+        * The DBMS-dependent part of query()
+        *
+        * @param string $sql SQL query.
+        * @return ResultWrapper|bool Result object to feed to fetchObject,
+        *   fetchRow, ...; or false on failure
+        */
+       protected function doQuery( $sql ) {
+               // TODO: Implement doQuery() method.
+       }
+}
+
+class FakeDatabaseUpdater extends DatabaseUpdater {
+       function __construct( $db ) {
+               $this->db = $db;
+               self::$updateCounter = 0;
+       }
+
+       /**
+        * Get an array of updates to perform on the database. Should return a
+        * multi-dimensional array. The main key is the MediaWiki version (1.12,
+        * 1.13...) with the values being arrays of updates, identical to how
+        * updaters.inc did it (for now)
+        *
+        * @return array
+        */
+       protected function getCoreUpdateList() {
+               return array();
+       }
+
+       public function canUseNewUpdatelog() {
+               return true;
+       }
+
+       public function setAppliedUpdates( $version, $updates ) {
+               parent::setAppliedUpdates( $version, $updates );
+       }
+}
index 41d8dee..f23b264 100644 (file)
@@ -9,21 +9,17 @@ class UploadBaseTest extends MediaWikiTestCase {
        protected $upload;
 
        protected function setUp() {
-               global $wgHooks;
                parent::setUp();
 
                $this->upload = new UploadTestHandler;
-               $this->hooks = $wgHooks;
-               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
-                       return false;
-               };
-       }
-
-       protected function tearDown() {
-               global $wgHooks;
-               $wgHooks = $this->hooks;
 
-               parent::tearDown();
+               $this->setMwGlobals( 'wgHooks', array(
+                       'InterwikiLoadPrefix' => array(
+                               function ( $prefix, &$data ) {
+                                       return false;
+                               }
+                       ),
+               ) );
        }
 
        /**
@@ -112,22 +108,22 @@ class UploadBaseTest extends MediaWikiTestCase {
         * This method should be abstracted so we can test different settings.
         */
        public function testMaxUploadSize() {
-               global $wgMaxUploadSize;
-               $savedGlobal = $wgMaxUploadSize; // save global
-               global $wgFileExtensions;
-               $wgFileExtensions[] = 'txt';
-
-               $wgMaxUploadSize = 100;
+               $this->setMwGlobals( array(
+                       'wgMaxUploadSize' => 100,
+                       'wgFileExtensions' => array(
+                               'txt',
+                       ),
+               ) );
 
-               $filename = $this->createFileOfSize( $wgMaxUploadSize );
+               $filename = $this->createFileOfSize( 100 );
                $this->upload->initializePathInfo( basename( $filename ) . '.txt', $filename, 100 );
                $result = $this->upload->verifyUpload();
                unlink( $filename );
 
                $this->assertEquals(
-                       array( 'status' => UploadBase::OK ), $result );
-
-               $wgMaxUploadSize = $savedGlobal; // restore global
+                       array( 'status' => UploadBase::OK ),
+                       $result
+               );
        }
 
 
index 7e37534..73e4c1a 100644 (file)
@@ -6,6 +6,12 @@
 
 class MWCryptHKDFTest extends MediaWikiTestCase {
 
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( 'wgSecretKey', '5bf1945342e67799cb50704a7fa19ac6' );
+       }
+
        /**
         * Test basic usage works
         */
index 62dccbf..b5fc800 100644 (file)
@@ -558,7 +558,7 @@ class TestFileIterator implements Iterator {
                                                $line = trim( $line );
 
                                                if ( $line ) {
-                                                       $delayedParserTest->requireTransparentHook( $line );
+                                                       $this->delayedParserTest->requireTransparentHook( $line );
                                                }
                                        }