Merge "Made TransactionProfiler affected-row warnings not trigger for JobRunner"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 18 Feb 2015 23:01:49 +0000 (23:01 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 18 Feb 2015 23:01:49 +0000 (23:01 +0000)
27 files changed:
RELEASE-NOTES-1.25
includes/Preferences.php
includes/api/ApiQueryBlocks.php
includes/api/i18n/ksh.json
includes/api/i18n/pam.json
includes/api/i18n/tl.json
includes/api/i18n/zh-hans.json
includes/db/LoadBalancer.php
includes/filerepo/file/ArchivedFile.php
includes/installer/PostgresUpdater.php
includes/jobqueue/jobs/RecentChangesUpdateJob.php
includes/resourceloader/ResourceLoaderImage.php
includes/skins/Skin.php
includes/skins/SkinTemplate.php
includes/upload/UploadBase.php
languages/i18n/ca.json
languages/i18n/ckb.json
languages/i18n/fa.json
languages/i18n/id.json
languages/i18n/ksh.json
languages/i18n/lv.json
languages/i18n/nds-nl.json
languages/i18n/pam.json
languages/i18n/pms.json
languages/i18n/szl.json
languages/i18n/tl.json
languages/i18n/uz.json

index 2c42885..8992ce0 100644 (file)
@@ -152,6 +152,8 @@ production.
 ** 'extend' method added to QuickTemplate to append additional values to any field of data array
 * (T86974) Several Title methods now load from the database when necessary
   (instead of returning incorrect results) even when the page ID is known.
+* (T74070) Duplicate search for archived files on file upload now omits the extension.
+  This requires the fa_sha1 field being populated.
 
 === Action API changes in 1.25 ===
 * (T67403) XML tag highlighting is now only performed for formats
index 84d4189..40c3a2b 100644 (file)
@@ -893,6 +893,9 @@ class Preferences {
                                'section' => 'rc/advancedrc',
                                'label-message' => 'tog-hidepatrolled',
                        );
+               }
+
+               if ( $user->useNPPatrol() ) {
                        $defaultPreferences['newpageshidepatrolled'] = array(
                                'type' => 'toggle',
                                'section' => 'rc/advancedrc',
@@ -991,7 +994,7 @@ class Preferences {
                        'label-message' => 'tog-watchlisthideliu',
                );
 
-               if ( $context->getConfig()->get( 'UseRCPatrol' ) ) {
+               if ( $user->useRCPatrol() ) {
                        $defaultPreferences['watchlisthidepatrolled'] = array(
                                'type' => 'toggle',
                                'section' => 'watchlist/advancedwatchlist',
index b7779a7..f6bde41 100644 (file)
@@ -57,12 +57,11 @@ class ApiQueryBlocks extends ApiQueryBase {
                $result = $this->getResult();
 
                $this->addTables( 'ipblocks' );
-               $this->addFields( array( 'ipb_auto', 'ipb_id' ) );
+               $this->addFields( array( 'ipb_auto', 'ipb_id', 'ipb_timestamp' ) );
 
                $this->addFieldsIf( array( 'ipb_address', 'ipb_user' ), $fld_user || $fld_userid );
                $this->addFieldsIf( 'ipb_by_text', $fld_by );
                $this->addFieldsIf( 'ipb_by', $fld_byid );
-               $this->addFieldsIf( 'ipb_timestamp', $fld_timestamp );
                $this->addFieldsIf( 'ipb_expiry', $fld_expiry );
                $this->addFieldsIf( 'ipb_reason', $fld_reason );
                $this->addFieldsIf( array( 'ipb_range_start', 'ipb_range_end' ), $fld_range );
index 469bb5c..ce7f695 100644 (file)
@@ -16,7 +16,8 @@
        "apihelp-block-param-nocreate": "Et Neu-Aanmelde verbeede",
        "apihelp-block-param-autoblock": "Dun automattesch de läzde <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräß schpärre, di dä Metmaacher jehatt hät, un och all di <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräße, vun wo dä versöhk, jet ze ändere.",
        "apihelp-block-param-watchuser": "Donn de Metmaachersigg un de Klaafsigg dohzoh op mig Oppaßleß säze.",
-       "apihelp-compare-description": "Donn de Ongerscheide zwesche zwai Sigge beschtemme.\n\nDo moß derför jeweils en Väsjohn, ene Tettel, odder ener Sigg iehr Kännong aanjävve, för de beide Sigge.",
+       "apihelp-block-example-ip-simple": "Donn de <i lang=\"en\" xmL:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß <kbd>192.0.2.5</kbd> för drei ääsch schpärre mem Jrond: <kbd>Eestschlaach</kbd>.",
+       "apihelp-compare-description": "Donn de Ongerscheide zwesche zwai Sigge beschtemme.\n\nDo moß derför jeweils en Väsjohn, en Övverschreff för di Sigg, odder ener Sigg iehr Kännong aanjävve, för de beide Sigge.",
        "apihelp-compare-param-fromtitle": "Der Tettel vun dä eezte Sigg zom verjlihsche.",
        "apihelp-compare-param-fromid": "De Kännong vun dä eezte Sigg zom verjlihsche.",
        "apihelp-compare-param-fromrev": "De Väsjohn vun dä zwaite Sigg zom verjlihsche.",
        "apihelp-createaccount-param-password": "Et Paßwoot (Weed ävver it jebruc un övverjange, wann <code lang=\"en\" xml:lang=\"en\"><var>$1mailpassword</var></code> jesaz es)",
        "apihelp-createaccount-param-realname": "Dämm Medmaacher singe reschtejje Nahme - kann fott blihve.",
        "apihelp-delete-description": "Schmieß en Sigg fott.",
-       "apihelp-delete-param-watch": "Donn die Sigg en Ding Oppassliss opnemme.",
-       "apihelp-delete-param-unwatch": "Schmiiß di Sigg us Dinge Oppassless erus.",
-       "apihelp-delete-example-simple": "Schmiiß de Houpsigg fott"
+       "apihelp-delete-param-watch": "Donn di Sigg en däm aktoälle Metmaacher sing Oppaßleß opnämme.",
+       "apihelp-delete-param-unwatch": "Schmihß di Sigg us däm aktoälle Metmaacher singe Oppaßless erus.",
+       "apihelp-delete-example-simple": "Schmiiß de Houpsigg fott",
+       "apihelp-edit-param-sectiontitle": "De Övverschreff för ene neue Affschnett.",
+       "apihelp-edit-param-minor": "En klein Änderong.",
+       "apihelp-edit-param-notminor": "Kein klein Änderong.",
+       "apihelp-edit-param-bot": "Makeer heh di Änderog als vun enem Bot jemaat.",
+       "apihelp-edit-example-edit": "Veränder en Sigg.",
+       "apihelp-emailuser-param-ccme": "scheck mer en Koppih vun heh dä <i lang=\"en\" xml:lang=\"en\">e-mail</i>.",
+       "apihelp-expandtemplates-description": "Deiht alle Schablohne en Wikkitäx ömsäze.",
+       "apihelp-expandtemplates-param-title": "De Övverschreff vun dä Sigg."
 }
index a652de6..c82d88f 100644 (file)
@@ -6,6 +6,7 @@
        },
        "apihelp-delete-example-simple": "Buran ya ing <kbd>Pun Bulung</kbd>.",
        "apihelp-edit-example-edit": "Alilan ya ing bulung.",
+       "apihelp-feedrecentchanges-example-simple": "Pakit deng bayung mengayalili.",
        "apihelp-help-example-main": "Saup para king pun modyul.",
        "apihelp-help-example-recursive": "Deng eganaganang saup king metung a bulung.",
        "apihelp-login-example-login": "Magpatala (login)",
index d35ce3e..ddf52d4 100644 (file)
@@ -4,18 +4,32 @@
                        "Leeheonjin"
                ]
        },
+       "apihelp-feedrecentchanges-example-simple": "Ipakit ang mga kamakailangang pagbabago.",
+       "apihelp-feedrecentchanges-example-30days": "Ipakita ang mga huling pagbabago sa loob para sa 30 araw.",
        "apihelp-help-example-main": "Tulong para sa pangunahing modulo.",
+       "apihelp-help-example-recursive": "Lahat ng tulong sa iisang pahina.",
+       "apihelp-login-example-login": "Lumagda (Mag-log in).",
        "apihelp-move-example-move": "I-urong ang <kbd>Badtitle</kbd> sa <kbd>Goodtitle</kbd> nang hindi nag-iiwan ng redirekta.",
+       "apihelp-options-example-reset": "Ibalik sa dati ang lahat ng mga kanaisan.",
        "apihelp-patrol-example-rcid": "Bantayan ang kasalukuyang pagbabago.",
+       "apihelp-query+allimages-example-B": "Ipakita ang talaan ng mga talakasang nagsisimula sa titik <kbd>B</kbd>.",
+       "apihelp-query+alllinks-example-generator": "Kinukuha ang mga pahinang naglalaman ng mga kawing.",
        "apihelp-query+allpages-example-B": "Ipakita ang talaan ng mga pahinang nagsisimula sa titik <kbd>B</kbd>.",
        "apihelp-query+alltransclusions-example-generator": "Kinukuha ang mga pahinang naglalaman ng mga transklusyon.",
+       "apihelp-query+backlinks-example-simple": "Ipakita ang mga kawing sa <kbd>Unang pahina<kbd>.",
        "apihelp-query+categoryinfo-example-simple": "Kumuha ng impormasyon tungkol sa <kbd>Kategorya:Foo</kbd> at <kbd>Kategorya:Bar</kbd>.",
+       "apihelp-query+duplicatefiles-example-simple": "Maghanap para sa mga duplika ng [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+duplicatefiles-example-generated": "Hanapin ang mga duplika ng lahat ng talakasan.",
        "apihelp-query+images-example-simple": "Kumuha ng talaan ng mga talakasang ginagamit sa [[Unang Pahina]].",
        "apihelp-query+imageusage-example-simple": "Ipakita ang mga pahina gamit ang [[:File:Albert Einstein Head.jpg]].",
        "apihelp-query+iwbacklinks-example-simple": "Kumuha ng mga pahinang nakarugtong sa [[wikibooks:Test]].",
+       "apihelp-query+linkshere-example-generator": "Kumuha ng kabatiran tungkol sa mga pahina na kumakawing sa [[Unang Pahina]].",
        "apihelp-query+recentchanges-example-simple": "Talaan ng mga kamakailang pagbabago.",
        "apihelp-query+search-example-text": "Hanapin ang mga teksto para sa <kbd>kahulugan</kbd>.",
+       "apihelp-query+siteinfo-example-simple": "Kunin ang impormasyon ng sityo.",
+       "apihelp-query+templates-example-simple": "Kumuha ng mga suleras o padron na ginamit sa pahinang <kbd>Unang Pahina</kbd>.",
        "apihelp-query+watchlist-example-simple": "Itala ang mga punong pagbabago ng mga kasalukuyang binagong pahina sa kasalukuyang listahan ng binabantayan ng tagagamit.",
        "apihelp-revisiondelete-example-revision": "Itago ang nilalaman para sa pagbabago ng <kbd>12345</kbd> sa pahinang <kbd>Unang Pahina</kbd>.",
-       "apihelp-upload-example-url": "Mag-karga mula sa URL."
+       "apihelp-upload-example-url": "Mag-karga mula sa URL.",
+       "apihelp-watch-example-watch": "Bantayan ang pahinang <kbd>Unang Pahina</kbd>."
 }
index f08e183..074d4ba 100644 (file)
@@ -32,7 +32,7 @@
        "apihelp-block-param-autoblock": "自动封禁最近使用的IP地址,以及以后他们尝试登陆使用的IP地址。",
        "apihelp-block-param-noemail": "阻止用户通过wiki发送电子邮件。(需要<code>blockemail</code>权限)。",
        "apihelp-block-param-hidename": "从封禁日志中隐藏用户名。(需要<code>hideuser</code>权限)。",
-       "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页 (取决于 <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>)。",
+       "apihelp-block-param-allowusertalk": "允许用户编辑自己的讨论页(取决于<var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>)。",
        "apihelp-block-param-reblock": "如果该用户已被封禁,则覆盖已有的封禁。",
        "apihelp-block-param-watchuser": "监视用户或该 IP 的用户页和讨论页。",
        "apihelp-block-example-ip-simple": "封禁IP地址<kbd>192.0.2.5</kbd>三天,原因<kbd>First strike</kbd>。",
index 4c9fd32..f357880 100644 (file)
@@ -328,7 +328,7 @@ class LoadBalancer {
                                        $this->mServers[$i]['slave pos'] = $conn->getSlavePos();
                                }
                        }
-                       if ( $this->mReadIndex <= 0 && $this->mLoads[$i] > 0 && $group !== false ) {
+                       if ( $this->mReadIndex <= 0 && $this->mLoads[$i] > 0 && $group === false ) {
                                $this->mReadIndex = $i;
                        }
                }
@@ -477,7 +477,7 @@ class LoadBalancer {
                                $groupIndex = $this->getReaderIndex( $group, $wiki );
                                if ( $groupIndex !== false ) {
                                        $serverName = $this->getServerName( $groupIndex );
-                                       wfDebug( __METHOD__ . ": using server $serverName for group $group\n" );
+                                       wfDebug( __METHOD__ . ": using server $serverName for group '$group'\n" );
                                        $i = $groupIndex;
                                        break;
                                }
index 5b0d8e2..1d45428 100644 (file)
@@ -100,8 +100,9 @@ class ArchivedFile {
         * @param Title $title
         * @param int $id
         * @param string $key
+        * @param string $sha1
         */
-       function __construct( $title, $id = 0, $key = '' ) {
+       function __construct( $title, $id = 0, $key = '', $sha1 = '' ) {
                $this->id = -1;
                $this->title = false;
                $this->name = false;
@@ -136,7 +137,11 @@ class ArchivedFile {
                        $this->key = $key;
                }
 
-               if ( !$id && !$key && !( $title instanceof Title ) ) {
+               if ( $sha1 ) {
+                       $this->sha1 = $sha1;
+               }
+
+               if ( !$id && !$key && !( $title instanceof Title ) && !$sha1 ) {
                        throw new MWException( "No specifications provided to ArchivedFile constructor." );
                }
        }
@@ -162,6 +167,9 @@ class ArchivedFile {
                if ( $this->title ) {
                        $conds['fa_name'] = $this->title->getDBkey();
                }
+               if ( $this->sha1 ) {
+                       $conds['fa_sha1'] = $this->sha1;
+               }
 
                if ( !count( $conds ) ) {
                        throw new MWException( "No specific information for retrieving archived file" );
index 9e41276..6ac5436 100644 (file)
@@ -384,8 +384,6 @@ class PostgresUpdater extends DatabaseUpdater {
                                'page(page_id) ON DELETE CASCADE' ),
                        array( 'changeFkeyDeferrable', 'protected_titles', 'pt_user',
                                'mwuser(user_id) ON DELETE SET NULL' ),
-                       array( 'changeFkeyDeferrable', 'recentchanges', 'rc_cur_id',
-                               'page(page_id) ON DELETE SET NULL' ),
                        array( 'changeFkeyDeferrable', 'recentchanges', 'rc_user',
                                'mwuser(user_id) ON DELETE SET NULL' ),
                        array( 'changeFkeyDeferrable', 'redirect', 'rd_from', 'page(page_id) ON DELETE CASCADE' ),
@@ -789,7 +787,7 @@ END;
                        $command = "ALTER TABLE $table DROP CONSTRAINT $conname";
                        $this->db->query( $command );
                } else {
-                       $this->output( "Foreign key constraint on '$table.$field' already does not exist\n" );
+                       $this->output( "...foreign key constraint on '$table.$field' already does not exist\n" );
                };
        }
 
index 236b4d4..b54ecfd 100644 (file)
@@ -76,6 +76,8 @@ class RecentChangesUpdateJob extends Job {
                        if ( $rcIds ) {
                                $dbw->delete( 'recentchanges', array( 'rc_id' => $rcIds ), __METHOD__ );
                        }
+                       // No need for this to be in a transaction.
+                       $dbw->commit( __METHOD__, 'flush' );
                } while ( $rcIds );
 
                $dbw->unlock( $lockKey, __METHOD__ );
index 6788c6f..c6e345f 100644 (file)
@@ -200,18 +200,22 @@ class ResourceLoaderImage {
                        $format = $context->getFormat();
                }
 
+               $path = $this->getPath( $context );
                if ( $this->getExtension() !== 'svg' ) {
-                       return file_get_contents( $this->getPath( $context ) );
+                       return file_get_contents( $path );
                }
 
                if ( $variant && isset( $this->variants[$variant] ) ) {
                        $data = $this->variantize( $this->variants[$variant], $context );
                } else {
-                       $data = file_get_contents( $this->getPath( $context ) );
+                       $data = file_get_contents( $path );
                }
 
                if ( $format === 'rasterized' ) {
                        $data = $this->rasterize( $data );
+                       if ( !$data ) {
+                               wfDebugLog( 'ResourceLoaderImage', __METHOD__  . " failed to rasterize for $path" );
+                       }
                }
 
                return $data;
@@ -307,7 +311,8 @@ class ResourceLoaderImage {
 
                $svg = $this->massageSvgPathdata( $svg );
 
-               if ( $wgSVGConverter === 'rsvg' ) {
+               // Sometimes this might be 'rsvg-secure'. Long as it's rsvg.
+               if ( strpos( $wgSVGConverter, 'rsvg' ) === 0 ) {
                        $command = 'rsvg-convert';
                        if ( $wgSVGConverterPath ) {
                                $command = wfEscapeShellArg( "$wgSVGConverterPath/" ) . $command;
@@ -339,16 +344,19 @@ class ResourceLoaderImage {
 
                        $metadata = SVGMetadataExtractor::getMetadata( $tempFilenameSvg );
                        if ( !isset( $metadata['width'] ) || !isset( $metadata['height'] ) ) {
+                               unlink( $tempFilenameSvg );
                                return false;
                        }
 
                        $handler = new SvgHandler;
-                       $handler->rasterize( $tempFilenameSvg, $tempFilenamePng, $metadata['width'], $metadata['height'] );
-
-                       $png = file_get_contents( $tempFilenamePng );
-
+                       $res = $handler->rasterize( $tempFilenameSvg, $tempFilenamePng, $metadata['width'], $metadata['height'] );
                        unlink( $tempFilenameSvg );
-                       unlink( $tempFilenamePng );
+
+                       $png = null;
+                       if ( $res === true ) {
+                               $png = file_get_contents( $tempFilenamePng );
+                               unlink( $tempFilenamePng );
+                       }
 
                        return $png ?: false;
                }
index 6cc139b..244a278 100644 (file)
@@ -646,7 +646,7 @@ abstract class Skin extends ContextSource {
 
                return $this->msg( 'retrievedfrom' )
                        ->rawParams( '<a dir="ltr" href="' . $url. '">' . $url . '</a>' )
-                       ->escaped();
+                       ->parse();
        }
 
        /**
@@ -656,7 +656,7 @@ abstract class Skin extends ContextSource {
                $action = $this->getRequest()->getVal( 'action', 'view' );
 
                if ( $this->getTitle()->userCan( 'deletedhistory', $this->getUser() ) &&
-                       ( $this->getTitle()->getArticleID() == 0 || $action == 'history' ) ) {
+                       ( !$this->getTitle()->exists() || $action == 'history' ) ) {
                        $n = $this->getTitle()->isDeleted();
 
                        if ( $n ) {
@@ -863,7 +863,7 @@ abstract class Skin extends ContextSource {
                if ( $timestamp ) {
                        $d = $this->getLanguage()->userDate( $timestamp, $this->getUser() );
                        $t = $this->getLanguage()->userTime( $timestamp, $this->getUser() );
-                       $s = ' ' . $this->msg( 'lastmodifiedat', $d, $t )->escaped();
+                       $s = ' ' . $this->msg( 'lastmodifiedat', $d, $t )->parse();
                } else {
                        $s = '';
                }
@@ -1166,7 +1166,7 @@ abstract class Skin extends ContextSource {
 
                return array(
                        'href' => $title->getLocalURL( $urlaction ),
-                       'exists' => $title->getArticleID() != 0,
+                       'exists' => $title->isKnown(),
                );
        }
 
index 45a1a8b..8136d8e 100644 (file)
@@ -743,17 +743,20 @@ class SkinTemplate extends Skin {
                self::checkTitle( $title, $name );
                return array(
                        'href' => $title->getLocalURL( $urlaction ),
-                       'exists' => $title->getArticleID() != 0,
+                       'exists' => $title->isKnown(),
                );
        }
 
+       /**
+        * @todo is this even used?
+        */
        function makeArticleUrlDetails( $name, $urlaction = '' ) {
                $title = Title::newFromText( $name );
                $title = $title->getSubjectPage();
                self::checkTitle( $title, $name );
                return array(
                        'href' => $title->getLocalURL( $urlaction ),
-                       'exists' => $title->getArticleID() != 0,
+                       'exists' => $title->exists(),
                );
        }
 
@@ -1213,7 +1216,7 @@ class SkinTemplate extends Skin {
                                'href' => $this->getTitle()->getLocalURL( "action=info" )
                        );
 
-                       if ( $this->getTitle()->getArticleID() ) {
+                       if ( $this->getTitle()->exists() ) {
                                $nav_urls['recentchangeslinked'] = array(
                                        'href' => SpecialPage::getTitleFor( 'Recentchangeslinked', $this->thispage )->getLocalURL()
                                );
index a8a38c7..fccb5e1 100644 (file)
@@ -677,10 +677,10 @@ abstract class UploadBase {
                }
 
                // Check dupes against archives
-               $archivedImage = new ArchivedFile( null, 0, "{$hash}.{$this->mFinalExtension}" );
-               if ( $archivedImage->getID() > 0 ) {
-                       if ( $archivedImage->userCan( File::DELETED_FILE ) ) {
-                               $warnings['duplicate-archive'] = $archivedImage->getName();
+               $archivedFile = new ArchivedFile( null, 0, '', $hash );
+               if ( $archivedFile->getID() > 0 ) {
+                       if ( $archivedFile->userCan( File::DELETED_FILE ) ) {
+                               $warnings['duplicate-archive'] = $archivedFile->getName();
                        } else {
                                $warnings['duplicate-archive'] = '';
                        }
index c3aacdc..70f7962 100644 (file)
@@ -45,7 +45,8 @@
                        "F3RaN",
                        "ESM",
                        "Loupeter",
-                       "Macofe"
+                       "Macofe",
+                       "Gerardduenas"
                ]
        },
        "tog-underline": "Subratlla els enllaços:",
        "right-override-export-depth": "Exportar pàgines incloent aquelles enllaçades fins a una fondària de 5",
        "right-sendemail": "Enviar missatges de correu electrònic a altres usuaris",
        "right-passwordreset": "Veure les soŀlicituds de restabliment de contrasenya per correu electrònic",
+       "right-managechangetags": "Crear i suprimir [[Special:Tags|etiquetes]] des de la base de dades",
        "newuserlogpage": "Registre de creació de l'usuari",
        "newuserlogpagetext": "Aquest és un registre de creació de nous usuaris.",
        "rightslog": "Registre dels permisos d'usuari",
        "action-viewmyprivateinfo": "mostra la informació personal",
        "action-editmyprivateinfo": "edita la informació personal",
        "action-editcontentmodel": "editar el model de contingut d'una pàgina",
+       "action-managechangetags": "crear i suprimir etiquetes de la base de dades",
        "nchanges": "$1 {{PLURAL:$1|canvi|canvis}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|des de la darrera visita}}",
        "enhancedrc-history": "historial",
        "tags-tag": "Nom de l'etiqueta",
        "tags-display-header": "Aparença de la llista de canvis",
        "tags-description-header": "Descripció completa del significat",
+       "tags-source-header": "Font",
        "tags-active-header": "Actiu?",
        "tags-hitcount-header": "Canvis etiquetats",
        "tags-actions-header": "Accions",
        "tags-active-yes": "Sí",
        "tags-active-no": "No",
+       "tags-source-extension": "Definit per una extensió",
+       "tags-source-manual": "Aplicat manualment per usuaris i bots",
+       "tags-source-none": "Ja no està en ús",
        "tags-edit": "modifica",
        "tags-delete": "suprimeix",
        "tags-activate": "activa",
        "tags-deactivate": "desactiva",
        "tags-hitcount": "$1 {{PLURAL:$1|canvi|canvis}}",
+       "tags-manage-no-permission": "No teniu permisos per administrar etiquetes de canvi",
+       "tags-create-heading": "Crea una nova etiqueta",
+       "tags-create-explanation": "Per defecte, les etiquetes acabades de crear estaran disponibles per usuaris i bots",
        "tags-create-tag-name": "Nom de l'etiqueta:",
        "tags-create-reason": "Motiu:",
        "tags-create-submit": "Crea",
+       "tags-create-no-name": "Heu d'especificar un nom d'etiqueta.",
+       "tags-create-invalid-chars": "Els noms d'etiqueta no han de contenir comes (<code>,</code>) o barres (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Els noms d'etiqueta no poden contenir caracters que no es poden usar en els títols de pàgina",
+       "tags-create-already-exists": "L'etiqueta \"$1\" ja existeix.",
        "tags-delete-reason": "Motiu:",
        "tags-activate-reason": "Motiu:",
        "tags-activate-submit": "Activa",
index de8be5c..42bddbc 100644 (file)
        "right-override-export-depth": "هەناردنی لاپەڕەکان کە لاپەڕەکانی بەستەر پێ‌دراو تا قووڵایی 5 لەخۆ بگرێت",
        "right-sendemail": "ناردنی ئیمەیل بۆ بەکارھێنەرانی تر",
        "right-passwordreset": "دیتنی ئیمەیلەکانی ڕێکخستنەوەی تێپەڕوشە",
+       "right-managechangetags": "دروستکردن و سڕینەوەی [[Special:Tags|تاگەکان]] لە بنکەدراوە",
        "newuserlogpage": "لۆگی دروستکردنی بەکارھێنەر",
        "newuserlogpagetext": "ئەمە لۆگێکی دروستکردنی بەکارھێنەرە.",
        "rightslog": "لۆگی مافەکانی بەکارھێنەر",
        "delete-warning-toobig": "ئەم لاپەڕە مێژوویەکی دەستکاری زۆر گەورەی هەیە، زیاتر لە $1 {{PLURAL:$1|پێداچوونەوە|پێداچوونەوە}}.\nسڕینەوی ئەوە لە وانەیە کارەکانی بنکەدراوی {{SITENAME}} تووشی کێشە بکات؛\nدوورنواڕانە جێ‌بەجێی بکە.",
        "deleting-backlinks-warning": "'''ھۆشدار:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|پەڕەکانی تر]] بەم پەڕەیەی دەتەوێ بیسڕییەوە بەستەر دراوە.",
        "rollback": "گەڕاندنەوەی دەستکارییەکان",
-       "rollback_short": "گەڕاندنەوە",
        "rollbacklink": "گەڕاندنەوە",
        "rollbacklinkcount": "گەڕاندنەوەی $1 {{PLURAL:$1|دەستکاری}}",
        "rollbacklinkcount-morethan": "گەڕاندنەوەی زۆرتر لە $1 {{PLURAL:$1|دەستکاری}}",
index 475f36b..9ea7620 100644 (file)
        "right-override-export-depth": "برون‌بری صفحه‌ها شامل صفحه‌های پیوند شده تا عمق ۵",
        "right-sendemail": "ارسال رایانامه به دیگر کاربران",
        "right-passwordreset": "مشاهدهٔ نامه‌های تنظیم مجدد گذرواژه",
+       "right-managechangetags": "ایجاد و حذف [[Special:Tags|برچسب‌ها]] از پایگاه داده",
        "newuserlogpage": "سیاههٔ ایجاد کاربر",
        "newuserlogpagetext": "این سیاهه‌ای از نام‌های کاربری تازه‌ساخته‌شده است.",
        "rightslog": "سیاههٔ اختیارات کاربر",
index 30ccfa4..b3e3d0f 100644 (file)
        "download": "unduh",
        "unwatchedpages": "Halaman yang tak dipantau",
        "listredirects": "Daftar pengalihan",
-       "listduplicatedfiles": "Daftar berkas yang berduplikat",
+       "listduplicatedfiles": "Daftar berkas duplikat",
        "listduplicatedfiles-summary": "Ini adalah daftar berkas di mana versi terbaru dari berkas tersebut merupakan duplikat dari versi terbaru dari beberapa berkas lain. Hanya berkas lokal yang dianggap.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] memiliki [[$3|{{PLURAL:$2|sebuah duplikat|$2 duplikat}}]].",
        "unusedtemplates": "Templat yang tak digunakan",
index a773e04..c3ab823 100644 (file)
        "media_tip": "Ene Link op en Tondatei, e Filmche, oder esu jet",
        "sig_tip": "Dinge Naame, med de Uhrzigk unn_em Dattum",
        "hr_tip": "En Querlinnich",
-       "summary": "Koot Zosammejefass, Quell:",
+       "summary": "Koot zosammejefaß, Quäll:",
        "subject": "Üvverschreff - wodröm jeiht et?",
        "minoredit": "Dat es en klein Änderung (mini)",
        "watchthis": "Op die Sigg heh oppasse",
        "parser-template-recursion-depth-warning": "Schablone refe sesch zo öff sellver op ($1)",
        "language-converter-depth-warning": "Zoh vill Verschachtelonge (övver $1) beim Täx-Ömwandelle vun eine Schprohch udder Schrevv en en anndere.",
        "node-count-exceeded-category": "Sigge, woh dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde es",
+       "node-count-exceeded-category-desc": "Di Sigg hät dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde.",
        "node-count-exceeded-warning": "Heh di Sigg hät dä <i lang=\"en\" xml:lang=\"en\">node-count</i> övverschredde",
        "expansion-depth-exceeded-category": "Sigge, woh de <i lang=\"en\" xml:lang=\"en\">expansion depth</i> övverschredde es",
        "expansion-depth-exceeded-category-desc": "Dat heh es de Saachjropp för Sigge, woh de <i lang=\"en\" xml:lang=\"en\">expansion depth</i> övverschreddde es.",
        "currentrev": "Neuste Version",
        "currentrev-asof": "De neuste Version fum $2 öm $3 Uhr",
        "revisionasof": "De Version vum $2 öm $3 Uhr",
-       "revision-info": "Dat heh es de övverhollte Version $3, {{GENDER:$2|vum|vum|vum Metmaacher|vun dä|vum}} $2 aam $4 öm $5 Uhr afjeshpeichert.",
+       "revision-info": "Väsjohn $3 vum $4 öm $5 Uhr vum {{GENDER:$6|vum|vum|vum Metmaacher|vun dä|vum}} $2.$7",
        "previousrevision": "← De Version dovör zeije",
        "nextrevision": "De Version donoh zeije →",
        "currentrevisionlink": "De neuste Version",
        "rev-deleted-event": "(Eijnzelheijte vom Logboch-Enndraach fottjenomme)",
        "rev-deleted-user-contribs": "[Däm Metmaacher singe Name udder sing <i lang=\"en\">IP</i>-Addräß wood veschtoche, un heh di Änderung douch nit mieh en de Leß met de Beidrääsch op]",
        "rev-deleted-text-permission": "Die Version fun dä Sigg es '''fottjeschmeße'''.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/delete|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:deletionlog}}}}] loore doht, künnt Ehr velleisch mieh do drövver lesse.",
+       "rev-suppressed-text-permission": "Di Väsjohn vun dä Sigg es <strong>verschtoche</strong> woode.\nEinzelheite fengk mer en däm [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Logbohch vum Sigge verschteische].",
        "rev-deleted-text-unhide": "{{int:rev-deleted-text-permission}} Als ene Wiki-Köbes kanns De [$1 se ävver doch bekike], wann De wells.",
        "rev-suppressed-text-unhide": "Die Version fun dä Sigg es '''verschtoche'''.\nWann Ehr en [{{FULLURL:{{#spezial:Log}}/suppress|page={{FULLPAGENAMEE}}}} {{lcfirst:{{int:suppressionlog}}}}] loore doht, künnt Ehr velleisch mieh do drövver lesse.\nAls ene Wiki-Köbes kanns De [$1 se ävver doch bekike], wann De wells.",
        "rev-deleted-text-view": "{{int:rev-deleted-text-permission}} Als ene Wiki-Köbes kanns De se ävver bekike.",
        "revdelete-text-text": "Fottjeschmeße Väsjohne blieve en dä Leß met de vörrije Väsjohne, ävver zom Deil kann de Öffentleschkeit nit mieh drop zohjriehfe.",
        "revdelete-text-file": "Fottjeschmeße Väsjohne vun Datteije blieve en dä Leß met de vörrije Väsjohne, ävver zom Deil kann de Öffentleschkeit nit mieh drop zohjriehfe.",
        "logdelete-text": "Fottjeschmeße Endrääsch en de Logbööscher blieve en dä Leß met de vörrije Väsjohne, ävver zom Deil kann de Öffentleschkeit nit mieh drop zohjriehfe.",
-       "revdelete-text-others": "De Wiki_Kööbeße künne emmer noch drop zohjriefe un künne och wider för alle seeschbaa maache, wat jäz verschtoche es, esu lang kein äxtra Beschränkonge jemaat woodte.",
+       "revdelete-text-others": "De Wiki_Kööbeße künne emmer noch drop zohjriefe un künne och wider för alle seeschbaa maache, wat jäz verschtoche es, esu lang wi kein äxtra Beschränkonge jemaat woodte.",
        "revdelete-confirm": "Bes esu joot un doon dat beschtääteje, un donn domet ongerschriive, dat De dat donn wells, dat De weiß, wat dobei eruß kütt, un dat De dat och noh de [[{{MediaWiki:Policy-url}}|Rääjelle]] deihß.",
        "revdelete-suppress-text": "Dat sullt '''blooß''' jedonn wäde för:\n* onjesäzlesche Aanjaabe\n* unjenehmesch persöhnlesch Daate\n*: ''Aanschreffte, Tellefoon- un ander Nummere, <span lang=\"en\" xml:lang=\"en\">e-mail</span> Adräß, uew.''",
        "revdelete-legend": "Dä öffentlije Zojang enschränke",
        "revdelete-hide-text": "dä Täx vun dä Väsjohn",
        "revdelete-hide-image": "De Enhallt vun däm Beld versteiche",
        "revdelete-hide-name": "Der Förjang un sing Parramehtere uss_em Enndraach em Logboch versteiche",
-       "revdelete-hide-comment": "dä Enhald vun „Koot Zosammejefass, Quell“",
+       "revdelete-hide-comment": "dä Enhald vun „{{int:Summary}}“",
        "revdelete-hide-user": "däm Bearbeider sing <i lang=\"en\" xml:lang=\"en\"IP</i>-Adress oder Metmaacher-Name",
        "revdelete-hide-restricted": "Dun dat och för de Wiki-Köbesse esu maache wie för jede Andere",
        "revdelete-radio-same": "(lohß wi_t eß)",
        "largefileserver": "De Datei es ze jroß. Jrößer wie däm ẞööver sing Enstellung erlaub.",
        "emptyfile": "Wat De hee jetz huhjelade häs, hät kein Daate dren jehatt. Künnt sin, dat De Dich verdon häs, un dä Name wo verkihrt jeschrevve. Luur ens ov De wirklich <strong>die</strong> Datei hee huhlade wells.",
        "windows-nonascii-filename": "Heh dat Wiki löht kein Datteiname met Sönderzeische zoh.",
-       "fileexists": "Et jitt ald en Datei met däm Name.\nWann De op „Datei avspeichere“ klicks, weed se ersetz.\nBes esu jod  un luur Der <strong>[[:$1]]</strong> aan, wann De nit 100% secher bes.\n[[$1|thumb]]",
+       "fileexists": "Et jitt ald en Dattei met däm Nahme. Bes esu johd un lohr Der <strong>[[:$1]]</strong> aan, wann De nit secher bes, da De se ändere wells.\n[[$1|thumb]]",
        "filepageexists": "En Sigg övver di Datei met däm Tittel <strong>[[:$1]]</strong> es ald doh, ävver en Datei met däm Name ham_mer nit. Dinge Tex kütt nit automattesch op di Sigg övver di Dattei. Di Sigg moß De wann nüüdesch noch ens extra ändere.\n[[$1|thumb]]",
        "fileexists-extension": "Mer han ald en Dattei, di bahl jenou esu heijß: [[$2|thumb]]\n* Huh am laade sim_mer: <strong>[[:$1]]</strong>\n* Ald om ßörve eß: <strong>[[:$2]]</strong>\nWels De nit leever ene andere Nahme fö di Datei ußsöhke?",
        "fileexists-thumbnail-yes": "Dat süühd uß, wi wann dat hee en Minni-Beldsche em Breefmarrke-Fommaat (''<span lang=\"en\">thumbnail</span>'') wöhr. [[$1|thumb]]\nDon ens di Dattei <strong>[[:$1]]</strong> prööfe.\nWann dat de Orjinaaljrüß es, do moß keij för dat Beld keij extra Vör-Aansich huhjelade wäde.",
        "filedelete-maintenance": "Datteie Fottschmiiße un widder zerök Holle jeiht jez jrad nit, mer hann Waadong.",
        "filedelete-maintenance-title": "Di Dattei künne mer nit fottschmiiße",
        "mimesearch": "Dateije övver dänne ehre <span lang=\"en\">MIME</span>-Tüp söhke",
-       "mimesearch-summary": "Op hee dä {{int:nstab-special}} könne de Dateie noh em <i lang=\"en\">MIME</i>-Tüpp ußjesöök wäde.\nMer moß immer der Medietüp un der Ongertüp aanjevve.\nZem Beispell: <code lang=\"en\">image/jpeg</code>\n— kannß donoh op dä Beschrievungssigge von de Dateie loore.",
+       "mimesearch-summary": "Op hee dä {{int:nstab-special}} könne de Dateie noh em <i lang=\"en\" xml:lang=\"en\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Tüpp ußjesöhk wähde.\nMer moß der Medijetüp un der Ongertüp aanjevve mem scheive Schtresch derzwesche, zem Bejschpell: <code xml:lang=\"en\" lang=\"en\">image/jpeg</code> udder <code xml:lang=\"en\" lang=\"en\">text/*</code> udder esu.",
        "mimetype": "MIME-Typ:",
        "download": "eronger laade",
        "unwatchedpages": "Sigge, wo keiner drop oppass",
        "pager-older-n": "{{PLURAL:$1|vörrije|vörrije $1}}",
        "suppress": "Versteiche",
        "querypage-disabled": "Heh di Extrasigg es ußjeschalldt, domet dä Server jet winnijer ze brassele hät.",
+       "apihelp": "Hölp för de <i lang=\"en\" xml:lang=\"en\" title=\"Application Programmers Interface\">API</i>",
        "apihelp-no-such-module": "Et Moduhl „$1“ wood nit jefonge.",
        "booksources": "Böcher",
        "booksources-search-legend": "Söök noh Bezochsquelle för Bööcher",
        "listgrouprights-removegroup-self-all": "Kann sesch sällver uß alle Metmaacherjroppe eruß nämme",
        "listgrouprights-namespaceprotection-header": "Beschrängkonge för Appachtemangs",
        "listgrouprights-namespaceprotection-namespace": "Appachtemang",
+       "trackingcategories": "Saachjroppe för täschnsche Saache ze verfollje.",
+       "trackingcategories-summary": "Op hee dä {{int:nstab-special}} sin Saachjroppe opjeleß, di automattesch vum Wikki jevöllt wähde. Dä iehr Nahme künne övver Veränderonge aan beschtemmpte Täxte em Appachtemang {{ns:8}} faßjelaat wäde.",
+       "trackingcategories-msg": "Saachjropp för täschnsche Saache ze verfollje.",
        "trackingcategories-name": "Dä Nohreesch udder däm Täxschtöck singe Nahme",
        "trackingcategories-desc": "Bedengonge för enjeschloße ze sin",
+       "noindex-category-desc": "Di Sigg sull vun de Wäbkrauler Robots un de Söhkmaschihne nit opjenumme wähde, weil dat Zauberwoot <code><nowiki>__NOINDEX__</nowiki></code> dren schteiht un se en enem Appachemang es, woh dat zohjelohße es.",
+       "index-category-desc": "Di Sigg sull vun de Wäbkrauler Robots un de Söhkmaschihne opjenumme wähde, weil dat Zauberwoot <code><nowiki>__INDEX__</nowiki></code> dren schteiht un se en enem Appachemang es, woh dat zohjelohße es, un wat nommahlerwies nit vun de Robots dorschsöhk weed.",
        "post-expand-template-inclusion-category-desc": "Nohdämm a paa Schablohne enjesaz woode sen, hät di Sigg mieh Dahte wi <code xml:lang=\"en\" lang=\"en\">$wgMaxArticleSize</code> zohlöhß. Et sin nit alle Oprohve vun Schablohne opjelöhß.",
        "post-expand-template-argument-category-desc": "Di Sigg hät mieh Dahte wi <code xml:lang=\"en\" lang=\"en\">$wgMaxArticleSize</code> zohlöhß, nohdämm dä Wäät för ene Parramehter — jät met drei jeschweifte Klammere drömeröm, wi <code>{{{Dengenskersche}}}</code> — enjesaz woode es.",
        "expensive-parserfunction-category-desc": "Di Sigg hät zoh vill düüre Befähle met Pahserfonxjuhne, för e Beijschpell esu jät, wi <code xml:lang=\"en\" lang=\"en\">#ifexist</code>. Mih doh drövver schteihd em [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Handbohch].",
        "wlheader-enotif": "Et <i lang=\"en\">e-mail</i> Schecke es enjeschalt.",
        "wlheader-showupdated": "Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin die Sigge <strong>extra markeet</strong>.",
        "wlnote": "{{PLURAL:$1|Hee es de läzde Änderong uß|Hee sin de läzde <strong>$1</strong> Änderonge uß|Mer han kein Änderonge en}} de läzde {{PLURAL:$2|Stund|<strong>$2</strong> Stunde|<strong>noll</strong> Stunde}} zigg em $3 öm $4 Uhr.",
-       "wlshowlast": "Zeich de letzte | $1 | Stunde | $2 | Dage |  | aan, dun",
+       "wlshowlast": "Zeisch de läzde $1 Schtunde, $2 Dähsch aan.",
        "watchlist-options": "Eijeschaffte fun de Oppassless",
        "watching": "Drop oppasse…",
        "unwatching": "Nimmieh drop oppasse",
        "tooltip-pt-mycontris": "en Liss met Dinge eije Beidräch",
        "tooltip-pt-login": "Do moß Desch nit Enlogge, kannz_E ävver jähn maache!",
        "tooltip-pt-logout": "Ußlogge",
+       "tooltip-pt-createaccount": "mer schlonn vör, dat De Desch aanmällde deihs un ennloggs, ävver müüdesch es et nit.",
        "tooltip-ca-talk": "Dun die Sigg met däm Klaaf övver heh de Sigg aanzeije",
        "tooltip-ca-edit": "De kanns die Sigg heh ändere — für em Avspeichere, donn eetß ens enen Bleck op de Vör-Aansich",
        "tooltip-ca-addsection": "Donn heh enne neue Afschnett opmaache.",
        "tags-deactivate": "ußschallde",
        "tags-hitcount": "{{PLURAL:$1|Ein Änderong|$1 Änderonge|Kein Änderonge}}",
        "tags-create-reason": "Jrond:",
+       "tags-create-submit": "Lohß Jonn!",
+       "tags-delete-explanation-in-use": "It will vun {{PLURAL:$2|eine Väsjohn udder einem Enndrahch|alle $2 Väsjohn udder Endrähsch|keine Väsjohn udder keinem Endrahsch}} em Logbohch, woh dat to which it is currently applied.",
        "tags-delete-reason": "Jrond:",
        "tags-activate-reason": "Jrond:",
+       "tags-activate-submit": "Aktivehre",
        "tags-deactivate-reason": "Jrond:",
        "tags-deactivate-submit": "Ußschallde",
        "comparepages": "Sigge verjliesche",
        "compare-revision-not-exists": "Dä aanjejovve Version jidd_et jaa nit.",
        "dberr-problems": "Deit uns leid, die Sigg heh häd för der Momang e teschnisch Problem.",
        "dberr-again": "Versök eijfach en e paa Menutte, norr_ens die Sigg afzeroofe.",
-       "dberr-info": "(Mer han kei Verbindung noh_m Datebank-ẞööver krijje künne: $1)",
-       "dberr-info-hidden": "(Mer han kei Verbindung noh_m Datebank-ẞööver krijje künne)",
+       "dberr-info": "(Mer han kein Verbendong noh_m Dahtebangk-ẞööver krijje künne för: $1)",
+       "dberr-info-hidden": "(Mer han kein Verbendong noh_m Dahtebangk-ẞööver krijje künne)",
        "dberr-usegoogle": "De künnß zweschedorsch ad met <i lang=\"en\">Google</i> söke.",
        "dberr-outofdate": "Müjjelesch, dat dat Verzeichnes vun uns Sigge do nit janß om neuste Shtannd es.",
        "dberr-cachederror": "Wat heh noh kütt es en Kopi vum Zwescheshpeisher vun dä Sigg,\ndie De häs han welle. Se künnt jet ällder un nit mieh aktoäll sin.",
        "revdelete-uname-unhid": "der Name vum Metmaacher öffentlesh jemaat",
        "revdelete-restricted": ", och för de Wiki-Köbesse",
        "revdelete-unrestricted": ", och för de Wiki-Köbesse",
+       "logentry-merge-merge": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Sigg „$3“ met dä Sigg „$4“ zersamme jelaat &emdash; Väsjohne bes  $5",
        "logentry-move-move": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt.",
        "logentry-move-move-noredirect": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei kein Ömleidong aanjelaat.",
        "logentry-move-move_redir": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei en ahle Ömleindongßsigg fottjeschmeße.",
        "logentry-rights-rights": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} „$1“ hät däm Metmaacher „$3“ sing Jroppe-Räächde vun „$4“ op „$5“ ömjestallt.",
        "logentry-rights-rights-legacy": "{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dat}} $1 hät däm Metmaacher $3 sing Räääschte-Jroppe verändert.",
        "logentry-rights-autopromote": "{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dat}} $1 wood automattesch vum $4 zom $5 jemaat.",
+       "logentry-upload-upload": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Dattei „$3“ huhjelahe.",
+       "logentry-upload-overwrite": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät en neue Väsjohn vun dä Dattei „$3“ huhjelahe.",
+       "logentry-upload-revert": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Dattei „$3“ huhjelahe.",
        "rightsnone": "(nix)",
        "revdelete-summary": "dä Täx en „{{int:summary}}“",
        "feedback-bugornote": "Wann de em Bejreff bes, övver e täschesch Probleem ze schrieve, bes esu jood un donn dat als en [$1 Fählermäldong].\nSöns, nemm dat koote Fommulaa heh dronger.\nWat De doh enjiß, kütt met Dingem Metmaachername un Dingem Brauser op die Sigg „[$3 $2]“ drop.",
        "expand_templates_generate_xml": "Och dä XML-Parser-Boum zeije",
        "expand_templates_generate_rawhtml": "Donn de Röh HTML Ußjaav aanzeije",
        "expand_templates_preview": "Vör-Aansich",
+       "expand_templates_preview_fail_html": "<em>Weil et Wiki rüh <i xml:lang=\"en\" title=\"HyperText Markup Language\" lang=\"en\">HTML</i> zohlöht un de Sezongsdahte verschött jejange sin, dom_mer de {{int:preview}} uß Vörseesch nit aanzeije, öm Aanjreffe övver JavaSkrep zevör ze kumme.</em>\n\n<strong>Wann dat heh en Ohdenong es, bes esu johd un versöhg et norr_ens.</strong>\nwann dat nix hellef, versöhg ens [[Special:UserLogout|ußzelogge]] un neu enzelogge.",
+       "expand_templates_preview_fail_html_anon": "<em>Weil et Wiki rüh <i xml:lang=\"en\" title=\"HyperText Markup Language\" lang=\"en\">HTML</i> zohlöht un Do nit ennjelogg bes, dom_mer de {{int:preview}} uß Vörseesch nit aanzeije, öm Aanjreffe övver JavaSkrep zevör ze kumme.</em>\n\n<strong>Wann dat heh en Ohdenong es, bes esu johd un donn [[Special:UserLogin|enlogge]] un versöhg et norr_ens.</strong>",
        "pagelanguage": "De Schprohch för di Sigg faßlääje",
        "pagelang-name": "Sigg",
        "pagelang-language": "De Schprohch",
        "right-pagelang": "Ener Sigg ier Schprohch tuusche",
        "action-pagelang": "Sigge ier Schprohch zu tuusche",
        "log-name-pagelang": "Logbooch vum Tuusche vun Sige iehr Schprohche",
+       "log-description-pagelang": "Dat heh es et Logbohch vun de Veränderonge aan de Schprohch vun de Sigge.",
+       "logentry-pagelang-pagelang": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Schprohch vun dä Sigg „$3“ vun $4 op $5 verändert.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enjeschalldt)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''ußjeschalldt''')",
        "mediastatistics": "Schtateßteke övver de Meedije",
+       "mediastatistics-summary": "Schtatißteke övver de huhjelahde Zoote Datteije. Von de Datteije weed bloß de jeweils neuste Väsjohn jezallt. Fottjeschmeße un övverhollte Datteije wähde nit metjezallt.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|Ei Byte|$1 Bytes|Nix}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "<i lang=\"en\" xml:lang=\"en\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Tüpp",
        "mediastatistics-table-count": "De Aanzahl Dateije",
        "mediastatistics-header-unknown": "Onbikannt",
        "mediastatistics-header-video": "Viddejos",
index 0f94255..4058c8c 100644 (file)
        "currentrev": "Pašreizējā versija",
        "currentrev-asof": "Pašreizējā versija, $1",
        "revisionasof": "Versija, kas saglabāta $1",
-       "revision-info": "Versija $1 laikā, kādu to atstāja $2",
+       "revision-info": "Versija $1, kādu to atstāja {{GENDER:$6|$2}}$7",
        "previousrevision": "← Senāka versija",
        "nextrevision": "Jaunāka versija →",
        "currentrevisionlink": "skatīt pašreizējo versiju",
index 696cb20..0639b17 100644 (file)
        "right-reupload": "n Bestaond bestaand overschrieven",
        "right-reupload-own": "Bestaanden overschrieven die'j der zelf bie ezet hebben",
        "right-reupload-shared": "Media uut de edeelden mediadatabanke plaotselik overschrieven",
-       "right-upload_by_url": "Bestaanden inlaojen via n webadres",
+       "right-upload_by_url": "Bestaanden oplaojen via n webadres",
        "right-purge": "t Tussengeheugen van n zied legen",
        "right-autoconfirmed": "Uutezonderd van IP-adres-ebaseerden tiedsaofhankelike beparkingen",
        "right-bot": "Behaandeld wörden as n eautomatiseerd preces",
        "action-upload": "dit bestaand opsturen",
        "action-reupload": "dit bestaonde bestaand overschrieven",
        "action-reupload-shared": "n aander bestaand over dit bestaand uut de edeelden mediadatabanke hinne zetten.",
-       "action-upload_by_url": "dit bestaand vanaof n webadres inlaojen",
+       "action-upload_by_url": "dit bestaand vanaof n webadres oplaojen",
        "action-writeapi": "de schrief-API bewarken",
        "action-delete": "disse zied vortdoon",
        "action-deleterevision": "disse versie vortdoon",
        "uploadnologintext": "Je mutten $1 ween um bestaanden op te kunnen sturen.",
        "upload_directory_missing": "De inlaojmap veur bestaanden ($1) is vort en kon niet an-emaakt wörden deur de webserver.",
        "upload_directory_read_only": "Op t moment ku'j gien bestaanden opsturen vanwegen techniese problemen ($1).",
-       "uploaderror": "Fout bie t inlaojen van t bestaand",
+       "uploaderror": "Fout bie t oplaojen van t bestaand",
        "upload-recreate-warning": "'''Waorschuwing: der is n bestaand mit disse naam vortedaon of herneumd.'''\n\nHieronder steet t vortdologboek en t herneumlogboek veur disse zied:",
        "uploadtext": "Gebruuk t formulier hieronder um bestaanden op te sturen.\nUm bestaanden te bekieken of te zeuken die eerder al op-estuurd bin, ku'j naor de [[Special:FileList|bestaandslieste]] gaon.\nBestaanden en media die nao t vortdoon opniej op-estuurd wörden ku'j in de smiezen houwen in t [[Special:Log/upload|logboek mit nieje bestaanden]] en t [[Special:Log/delete|vortdologboek]].\n\nUm t bestaand in te voegen in n zied ku'j een van de volgende kodes gebruken:\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bestaand.jpg]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Bestaand.png|alternatieve tekste]]</nowiki>'''\n* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Bestaand.ogg]]</nowiki>''' drekte verwiezing naor n bestaand.",
        "upload-permitted": "Toe-estaone bestaandstypes: $1.",
        "php-uploaddisabledtext": "t Opsturen van PHP-bestaanden is uutezet. Kiek de instellingen veur t opsturen van bestaanden effen nao.",
        "uploadscripted": "In dit bestaand steet HTML- of skriptkode die verkeerd elezen kan wörden deur de webkieker.",
        "uploadvirus": "In dit bestaand zit n virus! Gegevens: $1",
-       "uploadjava": "t Bestaand is n ZIP-bestaand waor n Java .class-bestaand in zit.\nt Inlaojen van Java-bestaanden is niet toe-estaon umdat hiermee beveiligingsinstellingen umzeild kunnen wörden.",
+       "uploadjava": "t Bestaand is n ZIP-bestaand waor n Java .class-bestaand in zit.\nt Oplaojen van Java-bestaanden is niet toe-estaon umdat hiermee beveiligingsinstellingen umzeild kunnen wörden.",
        "upload-source": "Bronbestaand",
        "sourcefilename": "Bestaandsnaam op de hardeschieve:",
        "sourceurl": "Bronwebadres:",
        "filename-bad-prefix": "De naam van t bestaand da'j opsturen, begint mit '''\"$1\"''', dit is n niet-beschrievende naam die meestentieds automaties deur n digitale kamera egeven wörden. Kies n dudelike naam veur t bestaand.",
        "upload-success-subj": "t Bestaand is op-estuurd",
        "upload-success-msg": "t Bestaand [$2] steet derop. Je kunnen t hier vienen: [[:{{ns:file}}:$1]]",
-       "upload-failure-subj": "Probleem bie t inlaojen van t bestaand",
-       "upload-failure-msg": "Der was n probleem bie t inlaojen van [$2]:\n\n$1",
+       "upload-failure-subj": "Probleem bie t oplaojen van t bestaand",
+       "upload-failure-msg": "Der was n probleem bie t oplaojen van [$2]:\n\n$1",
        "upload-warning-subj": "Waorschuwing veur t opsturen van bestaanden",
-       "upload-warning-msg": "Der was n probleem mit t inlaojen van t bestaand [$2].\nGao weerumme naor t [[Special:Upload/stash/$1|opstuurformulier]] um dit probleem te verhelpen.",
+       "upload-warning-msg": "Der was n probleem mit t oplaojen van t bestaand [$2].\nGao weerumme naor t [[Special:Upload/stash/$1|opstuurformulier]] um dit probleem te verhelpen.",
        "upload-proto-error": "Verkeerd protokol",
        "upload-proto-error-text": "Um op disse maniere bestaanden toe te voegen mutten webadressen beginnen mit <code>http://</code> of <code>ftp://</code>.",
        "upload-file-error": "Interne fout",
        "upload-file-error-text": "Bie ons gung der effen wat fout to n tiedelik bestaand op de server an-emaakt wörden. Neem kontakt op mit n [[Special:ListUsers/sysop|beheerder]].",
-       "upload-misc-error": "Onbekende fout bie t inlaojen van joew bestaand",
-       "upload-misc-error-text": "Der is bie t inlaojen van t bestaand n onbekende fout op-etrejen. \nKiek effen nao of de verwiezing t wel döt en probeer t opniej. \nAs t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/sysop|beheerders]].",
+       "upload-misc-error": "Onbekende fout bie t oplaojen van joew bestaand",
+       "upload-misc-error-text": "Der is bie t oplaojen van t bestaand n onbekende fout op-etrejen. \nKiek effen nao of de verwiezing t wel dut en probeer t opniej. \nAs t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/sysop|beheerders]].",
        "upload-too-many-redirects": "Der zatten te veule deurverwiezingen in de URL.",
        "upload-http-error": "Der is n HTTP-fout op-etrejen: $1",
        "upload-copy-upload-invalid-domain": "Bestaanden per kopie opsturen is niet beschikbaor vanuut dit domein.",
        "importcantopen": "Kon t invoerbestaand niet los doon",
        "importbadinterwiki": "Foute interwikiverwiezing",
        "importsuccess": "Invoeren suksesvol!",
-       "importnosources": "Gien transwiki-invoerbronnen vastesteld en t drek inlaojen van versies is eblokkeerd.",
+       "importnosources": "Gien transwiki-invoerbronnen vastesteld en t drek oplaojen van versies is eblokkeerd.",
        "importnofile": "Der is gien invoerbestaand op-estuurd.",
        "importuploaderrorsize": "t Opsturen van t invoerbestaand is mislokt.\nt Bestaand is groter as de in-estelde limiet.",
        "importuploaderrorpartial": "t Opsturen van t invoerbestaand is mislokt.\nt Bestaand is mer gedeeltelik an-ekeumen.",
        "feedback-bugnew": "Ik heb t nao-ekeken. Meld n nieje programmafout",
        "searchsuggest-search": "Zeuken / zuken / zuiken",
        "searchsuggest-containing": "bevat...",
-       "api-error-badaccess-groups": "Je maggen gien bestaanden in disse wiki inlaojen.",
+       "api-error-badaccess-groups": "Je maggen gien bestaanden in disse wiki oplaojen.",
        "api-error-badtoken": "Interne fout: t token klopt niet.",
        "api-error-copyuploaddisabled": "Bestaanden opsturen via n webadres is uutezet op disse server.",
        "api-error-duplicate": "Der {{PLURAL:$1|steet al [$2 n bestaand]|staon al [$2 bestaanden]}} mit de zelfde inhoud in de wiki.",
index 3e98011..a7245dc 100644 (file)
        "tags-delete-title": "Buran ya ing tag",
        "tags-delete-reason": "Sangkan:",
        "tags-activate-title": "Iyaktiba ing tag",
+       "tags-activate-reason": "Sangkan:",
        "tags-activate-not-found": "Ala yu ing tag \"$1\"",
        "tags-activate-submit": "Iyaktiba",
        "tags-deactivate-reason": "Sangkan:",
index cb09a79..71d7fba 100644 (file)
        "tags-create-tag-name": "Nòm ëd la tichëtta",
        "tags-create-reason": "Rason:",
        "tags-create-submit": "Creé",
+       "tags-create-no-name": "A dev spessifiché un nòm ëd tichëtta.",
+       "tags-create-invalid-chars": "Ij nòm ëd tichëtta a devo nen conten-e ëd còme (<code>,</code>) nì ëd bare anans (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Ij nòm ëd tichëtta a devo nen conten-e dij caràter ch'a peulo nen esse dovrà ant ij tìtok dle pàgine.",
+       "tags-create-already-exists": "La tichëtta «$1» a esist già.",
+       "tags-create-warnings-above": "{{PLURAL:$2|L'avertensa|J'avertense}} sì-dapress a son ëstàite rancontrà durant ël tentativ ëd creassion ëd la tichëtta «$1»:",
+       "tags-create-warnings-below": "Veul-lo andé anans ant la creassion dla tichëtta?",
        "comparepages": "Confronté dle pàgine",
        "compare-page1": "Pàgina 1",
        "compare-page2": "Pàgina 2",
index 7edb633..9eaf6ef 100644 (file)
        "right-siteadmin": "Zawjerańy i uodmykańy bazy danych",
        "newuserlogpage": "Nowe użytkowniki",
        "newuserlogpagetext": "To je rejer uostatńo utworzůnych kůnt użytkowńikůw",
-       "rightslog": "Uprawńyńa",
+       "rightslog": "Uprawńyńo",
        "rightslogtext": "Rejer půmjyńań uprawńyń užytkowńikůw.",
        "action-read": "přeglůndańo tyj zajty",
        "action-edit": "sprowjańo tyj zajty",
-       "action-createpage": "twořyńo zajtůw",
-       "action-createtalk": "twořyńo zajtůw godki",
+       "action-createpage": "tworzyńo zajtůw",
+       "action-createtalk": "tworzyńo zajtůw godki",
        "action-createaccount": "utwořyńo tygo kůnta užytkowńika",
        "action-minoredit": "do uoznačyńo tygo sprowjyńo kej drobne půmjyńańe",
        "action-move": "přećepańe tyj zajty",
index e62c635..d026c49 100644 (file)
@@ -13,7 +13,8 @@
                        "tl.wikipedia.org sysops",
                        "לערי ריינהארט",
                        "아라",
-                       "Ianlopez1115"
+                       "Ianlopez1115",
+                       "Leeheonjin"
                ]
        },
        "tog-underline": "Pagsasalungguhit ng link:",
        "delete-toobig": "May isang malaking kasaysayan ng pagbabago ang pahinang ito, mahigit sa $1 {{PLURAL:$1|pagbabago|mga pagbabago}}.\nIpanagbabawal ang pagbura ng ganyang mga pahina upang maiwasan ang hindi sinasadyang pagantala/paggambala sa {{SITENAME}}.",
        "delete-warning-toobig": "May malaking kasaysayan ng pagbabago ang pahinang ito, mahigit sa $1 {{PLURAL:$1|pagbabago|mga pagbabago}}.\nMaaaring makagambala/makaabala sa pagpapatakbo sa kalipunan ng dato ng {{SITENAME}};\nmagpatuloy na may pagiingat.",
        "rollback": "Mga pagbabagong may kaugnayan sa pagpapagulong na pabalik sa (mas) dati",
-       "rollback_short": "Pagulunging pabalik sa (mas) dati",
        "rollbacklink": "pagulunging pabalik sa (mas) dati",
        "rollbacklinkcount": "pagulunging pabalik ang $1 {{PLURAL:$1|pagbabago|mga pagbabago}}",
        "rollbacklinkcount-morethan": "pagulunging pabalik ang mahigit sa $1 {{PLURAL:$1|pagbabago|mga pagbabago}}",
        "import-logentry-interwiki": "Na-i-transwiki na ang $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|pagbabago|mga pagbabago}} mula sa $2",
        "javascripttest": "Pagsubok sa JavaScript",
-       "javascripttest-title": "Pinatatakbo ang mga pagsubok ng $1",
        "javascripttest-pagetext-noframework": "Nakalaan ang pahinang ito para sa pagpapatakbo ng mga pagsubok ng JavaScript.",
        "javascripttest-pagetext-unknownframework": "Hindi napag-aalamang balangkas ng pagsubok na \"$1\".",
        "javascripttest-pagetext-frameworks": "Mangyaring pumili ng isa sa sumusunod na mga  balangkas na pangsubok: $1",
        "javascripttest-pagetext-skins": "Pumili ng isang pabalat na patatakbuhan ng mga pagsubok:",
        "javascripttest-qunit-intro": "Tingnan ang [$1 dokumentasyon ng pagsubok] sa mediawiki.org.",
-       "javascripttest-qunit-heading": "Pook na subukan ng QUnit ng JavaScript ng MediaWiki",
        "tooltip-pt-userpage": "Ang iyong pahina ng tagagamit",
        "tooltip-pt-anonuserpage": "Ang pahina ng tagagamit para sa IP na iyong binabago bilang",
        "tooltip-pt-mytalk": "Ang iyong pahina ng usapan",
        "tags-tag": "Tatakan ang pangalan",
        "tags-display-header": "Anyo sa ibabaw ng mga talaan ng pagbabago",
        "tags-description-header": "Buong paglalarawan ng kahulugan",
+       "tags-source-header": "Pinagmulan",
        "tags-hitcount-header": "Natatakang mga pagbabago",
+       "tags-actions-header": "Mga hakbang",
+       "tags-source-none": "Hindi na ginagamit pa",
        "tags-edit": "baguhin",
+       "tags-delete": "Burahin",
        "tags-hitcount": "$1 {{PLURAL:$1|pagbabago|mga pagbabago}}",
+       "tags-create-reason": "Dahilan:",
+       "tags-create-submit": "Lumikha/Lumalang",
+       "tags-activate-reason": "Dahilan:",
+       "tags-deactivate-reason": "Dahilan:",
        "comparepages": "Paghambingin ang mga pahina",
        "compare-page1": "Pahina 1",
        "compare-page2": "Pahina 2",
index b263f26..244f3e7 100644 (file)
        "note": "'''Izoh:'''",
        "previewnote": "'''Bu shunchaki koʻrib chiqish.''' Oʻzgartirishlar hali saqlangani yoʻq!",
        "continue-editing": "tahrirlashni davom ettirish",
+       "session_fail_preview": "<strong>Afsuski, sizning tahriringiz texnik nosozlik yuzaga kelgani sabab saqlanmadi.</strong>\nIltimos, yana bir bor urinib koʻring.\nAgar shu xato yana takrorlansa, hisob yozuvingizdan [[Special:UserLogout|chiqishni amalga oshiring]] va qaytadan kiring.",
+       "session_fail_preview_html": "<strong>Afsuski, sizning tahriringiz texnik nosozlik yuzaga kelgani sabab saqlanmadi.</strong>\n\n<em>Chunki {{SITENAME}}da faqat HTMLdan foydalanish mumkin, JavaScript-hujumlardan saqlanish maqsadida koʻrib chiqish imkoniyati oʻchirib qoʻyilgan.</em>\n\n<strong>Agar foydali tahrir kiritmoqchi boʻlgan boʻlsangiz, yana bir bor urinib koʻring.</strong>\nAgar shundayam xato takrorlansa, hisob yozuvingizdan [[Special:UserLogout|chiqishni amalga oshiring]] va qaytadan kiring.",
        "editing": "Tahrirlanmoqda — $1",
        "creating": "«$1» sahifasini yaratish",
        "editingsection": "Tahrirlanmoqda — $1 (boʻlimi)",
        "prefs-displayrc": "Tasvirlash moslamalari",
        "prefs-displaywatchlist": "Tasvirlash moslamalari",
        "prefs-diffs": "Versiyalar farqi",
+       "userrights": "Foydalanuvchining huquqlarini boshqarish",
        "userrights-user-editname": "Foydalanuvchi nomi:",
        "editusergroup": "Guruhlardagi aʼzoligini oʻzgartirish",
        "userrights-groupsmember": "Aʼzolik:",
        "whatlinkshere-hideimages": "faylga havolalarini $1",
        "whatlinkshere-filters": "Filtrlar",
        "autoblockid": "Avtochetlashtirish #$1",
-       "block": "Foydalanuvchini muhosara qilish",
+       "block": "Foydalanuvchini chetlashtirish",
        "unblock": "Foydalanuvchiga yo'l ochish",
-       "blockip": "Foydalanuvchini chetlashtir",
-       "blockip-legend": "Foydalanuvchini muhosara qilish",
+       "blockip": "{{GENDER:$1|Foydalanuvchini}} chetlashtirish",
+       "blockip-legend": "Foydalanuvchini chetlashtirish",
        "ipaddressorusername": "IP-manzil yoki foydalanuvchi nomi:",
        "ipbexpiry": "Tugash muddati:",
        "ipbreason": "Sabab:",