Merge "Maintenance.php: Fix mwdebug error"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 24 Sep 2019 22:50:22 +0000 (22:50 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 24 Sep 2019 22:50:22 +0000 (22:50 +0000)
37 files changed:
autoload.php
includes/DefaultSettings.php
includes/Revision/RevisionStore.php
includes/exception/UserNotLoggedIn.php
includes/htmlform/CollapsibleFieldsetLayout.php [new file with mode: 0644]
includes/htmlform/OOUIHTMLForm.php
includes/http/HttpRequestFactory.php
includes/http/MWHttpRequest.php
includes/installer/i18n/nb.json
includes/logging/LogPager.php
includes/specials/pagers/NewFilesPager.php
languages/i18n/ban.json
languages/i18n/exif/af.json
languages/i18n/exif/nds-nl.json
languages/i18n/hr.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/kiu.json
languages/i18n/ko.json
languages/i18n/min.json
languages/i18n/ml.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/roa-tara.json
languages/i18n/sv.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
resources/src/jquery/jquery.makeCollapsible.styles.less
resources/src/mediawiki.base/mediawiki.errorLogger.js
resources/src/mediawiki.htmlform.ooui.styles.less
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.WatchlistTopSectionWidget.less
resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js
resources/src/startup/mediawiki.js
resources/src/startup/mediawiki.requestIdleCallback.js
tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js

index 7ff29ce..55e5a7f 100644 (file)
@@ -285,6 +285,7 @@ $wgAutoloadLocalClasses = [
        'CloneDatabase' => __DIR__ . '/includes/db/CloneDatabase.php',
        'CodeCleanerGlobalsPass' => __DIR__ . '/maintenance/CodeCleanerGlobalsPass.inc',
        'CodeContentHandler' => __DIR__ . '/includes/content/CodeContentHandler.php',
+       'CollapsibleFieldsetLayout' => __DIR__ . '/includes/htmlform/CollapsibleFieldsetLayout.php',
        'Collation' => __DIR__ . '/includes/collation/Collation.php',
        'CollationCkb' => __DIR__ . '/includes/collation/CollationCkb.php',
        'CommandLineInc' => __DIR__ . '/maintenance/commandLine.inc',
index 1068700..29b628c 100644 (file)
@@ -9096,6 +9096,9 @@ $wgNativeImageLazyLoading = false;
 
 /**
  * Option to whether serve the main page as the domain root
+ *
+ * @warning EXPERIMENTAL!
+ *
  * @since 1.34
  * @var bool
  */
index 3ecef76..a5cf840 100644 (file)
@@ -1907,7 +1907,11 @@ class RevisionStore
         *               'content'- whether the actual content of the slots should be
         *               preloaded.
         * @param int $queryFlags
-        * @param Title|null $title
+        * @param Title|null $title The title to which all the revision rows belong, if there
+        *        is such a title and the caller has it handy, so we don't have to look it up again.
+        *        If this parameter is given and any of the rows has a rev_page_id that is different
+        *        from $title->getArticleID(), an InvalidArgumentException is thrown.
+        *
         * @return StatusValue a status with a RevisionRecord[] of successfully fetched revisions
         *                                         and an array of errors for the revisions failed to fetch.
         */
index 7a99765..246c944 100644 (file)
@@ -80,9 +80,10 @@ class UserNotLoggedIn extends ErrorPageError {
                // since the message may not be compatible.
                if ( !in_array( $this->msg, LoginHelper::getValidErrorMessages() ) ) {
                        parent::report();
+                       return;
                }
 
-               // Message is valid. Redirec to Special:Userlogin
+               // Message is valid. Redirect to Special:Userlogin
 
                $context = RequestContext::getMain();
 
diff --git a/includes/htmlform/CollapsibleFieldsetLayout.php b/includes/htmlform/CollapsibleFieldsetLayout.php
new file mode 100644 (file)
index 0000000..804f1b9
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+
+class CollapsibleFieldsetLayout extends OOUI\FieldsetLayout {
+       public function __construct( array $config = [] ) {
+               parent::__construct( $config );
+
+               $this->addClasses( [ 'mw-collapsible' ] );
+               if ( isset( $config[ 'collapsed' ] ) && $config[ 'collapsed' ] ) {
+                       $this->addClasses( [ 'mw-collapsed' ] );
+               }
+               $this->header->addClasses( [ 'mw-collapsible-toggle' ] );
+               $this->group->addClasses( [ 'mw-collapsible-content' ] );
+
+               $this->header->appendContent(
+                       new OOUI\IconWidget( [
+                               'icon' => 'expand',
+                               'label' => wfMessage( 'collapsible-expand' )->text(),
+                       ] ),
+                       new OOUI\IconWidget( [
+                               'icon' => 'collapse',
+                               'label' => wfMessage( 'collapsible-collapse' )->text(),
+                       ] )
+               );
+
+               $this->header->setAttributes( [
+                       'role' => 'button',
+               ] );
+       }
+}
index baafa5e..94ba75e 100644 (file)
@@ -281,17 +281,10 @@ class OOUIHTMLForm extends HTMLForm {
 
        public function wrapForm( $html ) {
                if ( is_string( $this->mWrapperLegend ) ) {
-                       $classes = $this->mCollapsible ? [ 'mw-collapsible' ] : [];
-                       if ( $this->mCollapsed ) {
-                               $classes[] = 'mw-collapsed';
-                       }
-                       $content = new OOUI\FieldsetLayout( [
+                       $phpClass = $this->mCollapsible ? CollapsibleFieldsetLayout::class : OOUI\FieldsetLayout::class;
+                       $content = new $phpClass( [
                                'label' => $this->mWrapperLegend,
-                               'classes' => $classes,
-                               'group' => new OOUI\StackLayout( [
-                                       'expanded' => false,
-                                       'classes' => [ 'mw-collapsible-content' ],
-                               ] ),
+                               'collapsed' => $this->mCollapsed,
                                'items' => [
                                        new OOUI\Widget( [
                                                'content' => new OOUI\HtmlSnippet( $html )
index 510d26d..84e7b73 100644 (file)
@@ -37,8 +37,8 @@ class HttpRequestFactory {
         * Generate a new MWHttpRequest object
         * @param string $url Url to use
         * @param array $options Possible keys for the array:
-        *    - timeout             Timeout length in seconds
-        *    - connectTimeout      Timeout for connection, in seconds (curl only)
+        *    - timeout             Timeout length in seconds or 'default'
+        *    - connectTimeout      Timeout for connection, in seconds (curl only) or 'default'
         *    - postData            An array of key-value pairs or a url-encoded form data
         *    - proxy               The proxy to use.
         *                          Otherwise it will use $wgHTTPProxy (if set)
@@ -59,13 +59,12 @@ class HttpRequestFactory {
         *    - originalRequest     Information about the original request (as a WebRequest object or
         *                          an associative array with 'ip' and 'userAgent').
         * @codingStandardsIgnoreStart
-        * @phan-param array{timeout?:int,connectTimeout?:int,postData?:array,proxy?:string,noProxy?:bool,sslVerifyHost?:bool,sslVerifyCert?:bool,caInfo?:string,maxRedirects?:int,followRedirects?:bool,userAgent?:string,method?:string,logger?:\Psr\Log\LoggerInterface,username?:string,password?:string,originalRequest?:WebRequest|array{ip:string,userAgent:string}} $options
+        * @phan-param array{timeout?:int|string,connectTimeout?:int|string,postData?:array,proxy?:string,noProxy?:bool,sslVerifyHost?:bool,sslVerifyCert?:bool,caInfo?:string,maxRedirects?:int,followRedirects?:bool,userAgent?:string,method?:string,logger?:\Psr\Log\LoggerInterface,username?:string,password?:string,originalRequest?:\WebRequest|array{ip:string,userAgent:string}} $options
         * @codingStandardsIgnoreEnd
         * @param string $caller The method making this request, for profiling
         * @throws RuntimeException
         * @return MWHttpRequest
         * @see MWHttpRequest::__construct
-        * @suppress PhanUndeclaredTypeParameter
         */
        public function create( $url, array $options = [], $caller = __METHOD__ ) {
                if ( !Http::$httpEngine ) {
index d1c14ae..0f3096e 100644 (file)
@@ -89,7 +89,7 @@ abstract class MWHttpRequest implements LoggerAwareInterface {
         * @param string $url Url to use. If protocol-relative, will be expanded to an http:// URL
         * @param array $options (optional) extra params to pass (see HttpRequestFactory::create())
         * @codingStandardsIgnoreStart
-        * @phan-param array{timeout?:int,connectTimeout?:int,postData?:array,proxy?:string,noProxy?:bool,sslVerifyHost?:bool,sslVerifyCert?:bool,caInfo?:string,maxRedirects?:int,followRedirects?:bool,userAgent?:string,logger?:LoggerInterface,username?:string,password?:string,originalRequest?:WebRequest|array{ip:string,userAgent:string},method?:string} $options
+        * @phan-param array{timeout?:int|string,connectTimeout?:int|string,postData?:array,proxy?:string,noProxy?:bool,sslVerifyHost?:bool,sslVerifyCert?:bool,caInfo?:string,maxRedirects?:int,followRedirects?:bool,userAgent?:string,logger?:LoggerInterface,username?:string,password?:string,originalRequest?:WebRequest|array{ip:string,userAgent:string},method?:string} $options
         * @codingStandardsIgnoreEnd
         * @param string $caller The method making this request, for profiling
         * @param Profiler|null $profiler An instance of the profiler for profiling, or null
index ba5af6c..6195104 100644 (file)
        "config-restart": "Ja, start på nytt",
        "config-welcome": "=== Miljøsjekker ===\nGrunnleggende sjekker utføres for å se om dette miljøet er egnet for en MediaWiki-installasjon.\nDu bør oppgi resultatene fra disse sjekkene om du trenger hjelp under installasjonen.",
        "config-welcome-section-copyright": "=== Opphavsrett og vilkår ===\n\n$1\n\nMediaWiki er fri programvare; du kan redistribuere det og/eller modifisere det under betingelsene i GNU General Public License som publisert av Free Software Foundation; enten versjon 2 av lisensen, eller (etter eget valg) enhver senere versjon.\n\nDette programmet er distribuert i håp om at det vil være nyttig, men '''uten noen garanti'''; ikke engang implisitt garanti av '''salgbarhet''' eller '''egnethet for et bestemt formål'''.\nSe GNU General Public License for flere detaljer.\n\nDu skal ha mottatt [$2 en kopi av GNU General Public License] sammen med dette programmet; hvis ikke, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA eller [https://www.gnu.org/copyleft/gpl.html les det på nettet].",
-       "config-sidebar": "* [https://www.mediawiki.org MediaWiki hjem]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Brukerguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratorguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ OSS]\n----\n* <doclink href=Readme>Les meg</doclink>\n* <doclink href=ReleaseNotes>Utgivelsesnotater</doclink>\n* <doclink href=Copying>Kopiering</doclink>\n* <doclink href=UpgradeDoc>Oppgradering</doclink>",
+       "config-sidebar": "* [https://www.mediawiki.org MediaWiki.org]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Brukerguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Administratorguide]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ OSS]",
+       "config-sidebar-readme": "Les meg",
+       "config-sidebar-relnotes": "Utgivelsesnotater",
+       "config-sidebar-license": "Kopiering",
+       "config-sidebar-upgrade": "Oppgradering",
        "config-env-good": "Miljøet har blitt sjekket.\nDu kan installere MediaWiki.",
        "config-env-bad": "Miljøet har blitt sjekket.\nDu kan ikke installere MediaWiki.",
        "config-env-php": "PHP $1 er installert.",
        "config-env-hhvm": "HHVM $1 er installert.",
-       "config-unicode-using-intl": "Bruker [https://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
-       "config-unicode-pure-php-warning": "'''Advarsel''': [https://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
+       "config-unicode-using-intl": "Bruker [https://php.net/manual/en/book.intl.php PHPs intl-utvidelse] for Unicode-normalisering.",
+       "config-unicode-pure-php-warning": "<strong>Advarsel:</strong> [https://php.net/manual/en/book.intl.php PHPs intl-utvidelse] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
        "config-unicode-update-warning": "<strong>Advarsel:</strong> Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
        "config-no-db": "Fant ingen passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende {{PLURAL:$2|databasetype|databasetyper}} støttes: $1\n\nOm du kompilerte PHP selv, rekonfigurer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysqli</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke, må du også installere for eksempel <code>php-mysql</code>-pakken.",
-       "config-outdated-sqlite": "'''Advarsel''': Du har SQLite $1, som er en eldre versjon enn minimumskravet SQLite $2. SQLite vil ikke være tilgjengelig.",
+       "config-outdated-sqlite": "<strong>Advarsel:</strong> Du har SQLite $2, som er en eldre versjon enn minimumskravet SQLite $1. SQLite vil ikke være tilgjengelig.",
        "config-no-fts3": "'''Advarsel''': SQLite er kompilert uten [//sqlite.org/fts3.html FTS3-modulen], søkefunksjoner vil ikke være tilgjengelig på dette bakstykket.",
        "config-pcre-old": "'''Alvorlig:''' PCRE $1 eller senere kreves.\nDin PHP-kode er lenket med PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Nærmere informasjon].",
        "config-pcre-no-utf8": "'''Fatal''': PHPs PCRE modul ser ut til å være kompilert uten PCRE_UTF8-støtte.\nMediaWiki krever UTF-8-støtte for å fungere riktig.",
@@ -83,7 +87,7 @@
        "config-uploads-not-safe": "'''Advarsel:''' Din standardmappe for opplastinger <code>$1</code> er sårbar for kjøring av vilkårlige skript.\nSelv om MediaWiki sjekker alle opplastede filer for sikkerhetstrusler er det sterkt anbefalt å [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security lukke denne sikkerhetssårbarheten] før du aktiverer opplastinger.",
        "config-no-cli-uploads-check": "'''Advarsel:''' Din standard-katalog for opplastinger (<code>$1</code>) er ikke kontrollert for sårbarhet overfor vilkårlig skript-kjøring under CLI-installasjonen.",
        "config-brokenlibxml": "Ditt system bruker en kombinasjon av PHP- og libxml2-versjoner som har feil og kan forårsake skjult dataødeleggelse i MediaWiki og andre web-applikasjoner.\nOppgrader til libxml2 2.7.3 eller nyere ([https://bugs.php.net/bug.php?id=45996 Feil-liste for PHP]).\nInstalleringen ble abortert.",
-       "config-suhosin-max-value-length": "Suhosin er installert og begrenser GET-parameterlengder til $1 bytes. MediaWiki sin ResourceLoader-komponent klarer å komme rundt denne begrensningen, men med redusert ytelse. Om mulig bør du sette <code>suhosin.get.max_value_length</code> til minst 1024 i <code>php.ini</code>, og sette <code>$wgResourceLoaderMaxQueryLength</code> til samme verdi i <code>LocalSettings.php</code>.",
+       "config-suhosin-max-value-length": "Suhosin er installert og begrenser GET-parameterlengder til $1 bytes.\nMediaWiki krever at <code>suoshin.get.max_value_length</code> er minst $2. Slå av denne innstillingen eller øk verdien til $3 i <code>php.ini</code>.",
        "config-using-32bit": "<strong>Adversel:</strong> Systemet ditt ser ut til å være 32-bit-basert, mens dette er [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:32-bit not advised].",
        "config-db-type": "Databasetype:",
        "config-db-host": "Databasevert:",
index 781df06..0b78a36 100644 (file)
@@ -361,6 +361,11 @@ class LogPager extends ReverseChronologicalPager {
                if ( !$this->mTagFilter && !array_key_exists( 'ls_field', $this->mConds ) ) {
                        $options[] = 'STRAIGHT_JOIN';
                }
+               if ( $this->performer !== '' ) {
+                       // T223151: MariaDB's optimizer, at least 10.1, likes to choose a wildly bad plan for
+                       // some reason for this code path. Tell it not to use the wrong index it wants to pick.
+                       $options['IGNORE INDEX'] = [ 'logging' => [ 'times' ] ];
+               }
 
                $info = [
                        'tables' => $tables,
index be4a1bd..9a78c5d 100644 (file)
@@ -64,11 +64,11 @@ class NewFilesPager extends RangeChronologicalPager {
        function getQueryInfo() {
                $opts = $this->opts;
                $conds = [];
-               $imgQuery = LocalFile::getQueryInfo();
-               $tables = $imgQuery['tables'];
-               $fields = [ 'img_name', 'img_timestamp' ] + $imgQuery['fields'];
+               $actorQuery = ActorMigration::newMigration()->getJoin( 'img_user' );
+               $tables = [ 'image' ] + $actorQuery['tables'];
+               $fields = [ 'img_name', 'img_timestamp' ] + $actorQuery['fields'];
                $options = [];
-               $jconds = $imgQuery['joins'];
+               $jconds = $actorQuery['joins'];
 
                $user = $opts->getValue( 'user' );
                if ( $user !== '' ) {
@@ -89,7 +89,7 @@ class NewFilesPager extends RangeChronologicalPager {
                                        'LEFT JOIN',
                                        [
                                                'ug_group' => $groupsWithBotPermission,
-                                               'ug_user = ' . $imgQuery['fields']['img_user'],
+                                               'ug_user = ' . $actorQuery['fields']['img_user'],
                                                'ug_expiry IS NULL OR ug_expiry >= ' . $dbr->addQuotes( $dbr->timestamp() )
                                        ]
                                ];
@@ -107,7 +107,7 @@ class NewFilesPager extends RangeChronologicalPager {
                                'JOIN',
                                [
                                        'rc_title = img_name',
-                                       'rc_actor = ' . $imgQuery['fields']['img_actor'],
+                                       'rc_actor = ' . $actorQuery['fields']['img_actor'],
                                        'rc_timestamp = img_timestamp'
                                ]
                        ];
index 457680d..e834be3 100644 (file)
        "yourpasswordagain": "jumunin kruna sandi",
        "createacct-yourpasswordagain": "Pastiang kruna sandi",
        "createacct-yourpasswordagain-ph": "Dagingin malih kruna sandi",
-       "userlogin-remembermypassword": "Banggayang mangda tetep ngranjing",
+       "userlogin-remembermypassword": "Banggayang mangda setata manjing log",
        "cannotlogin-title": "Nénten prasida manjing log",
        "cannotlogin-text": "Nénten prasida manjing log.",
        "cannotloginnow-title": "Mangkin nénten prasida manjing log",
        "history-feed-title": "Babad uahan",
        "history-feed-description": "Babad uahan kaca puniki ring wiki",
        "history-feed-item-nocomment": "$1 ring $2",
-       "rev-delundel": "gentos pangatonan",
+       "rev-delundel": "uah pakantenan",
        "rev-showdeleted": "sinahang",
        "revdelete-hide-comment": "Uah ringkesan",
        "revdel-restore": "gentos pangatonan",
        "filehist-revert": "wangdéang",
        "filehist-current": "mangkin",
        "filehist-datetime": "Tanggal/Galah",
-       "filehist-thumb": "Miniatur",
-       "filehist-thumbtext": "miniatur anggen versi ring $1",
+       "filehist-thumb": "Gambar alit",
+       "filehist-thumbtext": "Gambar alit indik vérsi $1",
        "filehist-nothumb": "Tusing ade miniatur",
        "filehist-user": "Sang anganggé",
        "filehist-dimensions": "Diménsi",
        "linkshere": "Kaca-kaca ring sor puniki kasambung ring <strong>$2</strong>:",
        "nolinkshere": "Nénten wénten kaca sané madué pranala ring <strong>$2</strong>.",
        "isredirect": "Kaca gingsiran",
-       "istemplate": "sareng kasurat",
+       "istemplate": "transklusi",
        "isimage": "pranala berkas",
        "whatlinkshere-prev": "{{PLURAL:$1|sadurungnyané|$1 sadurungnyané}}",
        "whatlinkshere-next": "{{PLURAL:$1|salanturnyané|$1 salanturnyané}}",
        "blocklogpage": "Log pangempet",
        "blocklogentry": "mlokir [[$1]] anggen pangwates galah $2$3",
        "reblock-logentry": "nguwah blokiran aturan antuk [[$1]] sareng galah kadaluwarsa $2 $3",
-       "block-log-flags-nocreate": "ngawe akun kaicalang",
+       "block-log-flags-nocreate": "pangardi akun kapademang",
        "proxyblocker": "Sané ngablokir proxy",
        "movelogpage": "Log gingsiran",
        "revertmove": "wangdéang",
        "tooltip-t-recentchangeslinked": "Uahan sané mangkin saking kaca-kaca sané kasambung ring kaca puniki",
        "tooltip-feed-atom": "\"atom feed\" anggen lembar puniki",
        "tooltip-t-contributions": "Bacakan pituut antuk {{GENDER:$1|sang anganggé puniki}}",
-       "tooltip-t-emailuser": "Ngirim surel majeng ring {{GENDER:$1|penganggo puniki}}",
+       "tooltip-t-emailuser": "Kirim séwala éléktronik ring {{GENDER:$1|sang anganggé puniki}}",
        "tooltip-t-upload": "Unggahang depukan",
        "tooltip-t-specialpages": "Bacakan makasami kaca kusus",
        "tooltip-t-print": "Vérsi cétak kaca puniki",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|kaca}}",
        "file-info-size": "$1x$2 piksel, agengnyané depukan: $3, soroh MIME:$4",
        "file-info-size-pages": "$1 × $2 piksel, agengnyané berkas: $3, soroh MIME: $4, $5 {{PLURAL:$5|kaca}}",
-       "file-nohires": "tan kasayagaang ukuran sane lewih ageng",
+       "file-nohires": "Nénten kasayagaang résolusi sané lewih ageng.",
        "svg-long-desc": "Berkas SVG, jimbarnyané $1 × $2 piksel, agengnyané berkas: $3",
        "show-big-image": "Depukan sujati",
        "show-big-image-preview": "Agengnyané pratuduh puniki: $1.",
        "compare-page2": "Kaca 2",
        "logentry-delete-delete": "$1 {{GENDER:$2|ngusapin}} kaca $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|ngwaliang}} kaca $3 ($4)",
-       "logentry-delete-revision": "$1 {{GENDER:$2|mauah}} kaca utama {{PLURAL:$5|$5  pamecikan}} ring kaca $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|nguahin}} pakantenan saking {{PLURAL:$5|$5  révisi}} ring kaca $3: $4",
        "revdelete-content-hid": "daging kaengkebang",
        "logentry-move-move": "$1 {{GENDER:$2|ngingsirang}} kaca $3 ka $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ngingsirang}} kaca $3 ka $4 tur nenten ngawe pengalihan",
index d554442..fca6f19 100644 (file)
@@ -7,7 +7,8 @@
                        "Naudefj",
                        "SPQRobin",
                        "Shirayuki",
-                       "Spacebirdy"
+                       "Spacebirdy",
+                       "Servien"
                ]
        },
        "exif-imagewidth": "Breedte",
        "exif-gpsstatus-v": "Meetinteroperabiliteit",
        "exif-gpsmeasuremode-2": "2-dimensionele meting",
        "exif-gpsmeasuremode-3": "3-dimensionele meting",
-       "exif-gpsspeed-k": "Kilometer per huur",
+       "exif-gpsspeed-k": "Kilometer per uur",
        "exif-gpsspeed-m": "Myl per huur",
        "exif-gpsspeed-n": "Knope",
        "exif-gpsdestdistance-k": "Kilometers",
index 73b2b7b..484ad32 100644 (file)
        "exif-rightscertificate": "Rechtenbeheyrcertifikaat",
        "exif-copyrighted": "Autöörsrechtenståtus",
        "exif-copyrightowner": "Autöörsrechtenholder",
-       "exif-usageterms": "Bruuksbeding",
+       "exif-usageterms": "Gebruuksbeding",
        "exif-webstatement": "Binnennetse autöörsrechtenverklåring",
        "exif-originaldocumentid": "Unik ID van et originele dokument",
        "exif-licenseurl": "Webadres vöär autöörsrechtenlicensy",
        "exif-morepermissionsurl": "Alternative licensygegeavens",
        "exif-attributionurl": "Bruuk de volgende verwysing as dit wark herbruked wördt",
        "exif-preferredattributionname": "Bruuk de volgende makersvermelding as dit wark herbruked wördt",
-       "exif-pngfilecomment": "Opmarking bie PNG-bestaand",
+       "exif-pngfilecomment": "Upmarking by PNG-bestand",
        "exif-disclaimer": "Vöärbehold",
-       "exif-contentwarning": "Waorschuwing over inhoud",
-       "exif-giffilecomment": "Opmarking bie GIF-bestaand",
-       "exif-intellectualgenre": "Soort onderwarp",
-       "exif-subjectnewscode": "Onderwarpkode",
-       "exif-scenecode": "IPTC-scènekode",
-       "exif-event": "Aofebeelden gebeurtenisse",
-       "exif-organisationinimage": "Aofebeelden organisasie",
-       "exif-personinimage": "Aofebeeld persoon",
-       "exif-originalimageheight": "Heugte van de aofbeelding veur biesniejen",
-       "exif-originalimagewidth": "Breedte van de aofbeelding veur biesniejen",
-       "exif-compression-1": "Niet ekomprimeerd",
-       "exif-compression-2": "CCITT-groep 3 1-dimensionale an-epasten \"Huffman run length\"-kodering",
-       "exif-compression-3": "CCITT-groep 3 faxcodering",
-       "exif-compression-4": "CCITT-groep 4 faxcodering",
-       "exif-copyrighted-true": "Auteursrechtelik bescharmp",
-       "exif-copyrighted-false": "Auteursrechtenstaotus niet vasteleegd",
-       "exif-unknowndate": "Onbekende daotum",
+       "exif-contentwarning": "Inholdswårsküwing",
+       "exif-giffilecomment": "Upmarking by GIF-bestand",
+       "exif-intellectualgenre": "Soort underwarp",
+       "exif-subjectnewscode": "Underwarpkode",
+       "exif-scenecode": "IPTC-scenekode",
+       "exif-event": "Afbealdede geböärtenisse",
+       "exif-organisationinimage": "Afbealdede organisaty",
+       "exif-personinimage": "Afbealded persoon",
+       "exif-originalimageheight": "Höygde van de afbealding vöär et bysnyden",
+       "exif-originalimagewidth": "Breydde van de afbealding vöär et bysnyden",
+       "exif-compression-1": "Neet komprimeerd",
+       "exif-compression-2": "CCITT-grup 3 1-dimensionale anpasde \"Huffman run length\"-kodering",
+       "exif-compression-3": "CCITT-grup 3 fakskodering",
+       "exif-compression-4": "CCITT-grup 4 fakskodering",
+       "exif-copyrighted-true": "Autöörsrechtelik beskarmd",
+       "exif-copyrighted-false": "Autöörsrechtenståtus neet upgeaven",
+       "exif-photometricinterpretation-0": "Swart-wit (wit is 0)",
+       "exif-photometricinterpretation-1": "Swart-wit (swart is 0)",
+       "exif-photometricinterpretation-3": "Palette",
+       "exif-photometricinterpretation-4": "Transparansymasker",
+       "exif-photometricinterpretation-5": "Skeiden (wårskynlik CMYK)",
+       "exif-photometricinterpretation-8": "CIE L*a*b*",
+       "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-kodering)",
+       "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-kodering)",
+       "exif-unknowndate": "Unbekende dåtum",
        "exif-orientation-1": "Normaal",
-       "exif-orientation-2": "horizontaal espegeld",
-       "exif-orientation-3": "180° edreid",
-       "exif-orientation-4": "verticaal edreid",
-       "exif-orientation-5": "espegeld um as linksboven-rechtsonder",
-       "exif-orientation-6": "90° linksummedreid",
-       "exif-orientation-7": "90° linksummedreid",
-       "exif-orientation-8": "90° rechtsummedreid",
-       "exif-planarconfiguration-1": "Grof gegevensformaot",
-       "exif-planarconfiguration-2": "planar gegevensformaot",
-       "exif-colorspace-65535": "Niet-ekalibreerd",
-       "exif-componentsconfiguration-0": "besteet niet",
-       "exif-exposureprogram-0": "Niet umschreven",
-       "exif-exposureprogram-1": "Haandmaotig",
+       "exif-orientation-2": "horizontaal spegeld",
+       "exif-orientation-3": "180° draid",
+       "exif-orientation-4": "vertikaal draid",
+       "exif-orientation-5": "90° teagen de klokke in draid en vertikaal spegeld",
+       "exif-orientation-6": "90° teagen de klokke in draid",
+       "exif-orientation-7": "90° mid de klokke middraid en vertikaal spegeld",
+       "exif-orientation-8": "90° mid de klokke middraid",
+       "exif-planarconfiguration-1": "Grov formaat",
+       "exif-planarconfiguration-2": "Planäär formaat",
+       "exif-colorspace-65535": "Neet kalibreerd",
+       "exif-componentsconfiguration-0": "besteyt neet",
+       "exif-exposureprogram-0": "Unbekend",
+       "exif-exposureprogram-1": "Handmåtig",
        "exif-exposureprogram-2": "Normaal",
        "exif-exposureprogram-3": "Diafragmaprioriteit",
        "exif-exposureprogram-4": "Sluterprioriteit",
-       "exif-exposureprogram-5": "Kreatief (veurkeur veur grote scharptediepte)",
-       "exif-exposureprogram-6": "Aksie (veurkeur veur hoge slutersnelheid)",
-       "exif-exposureprogram-7": "Portret (detailopname mit onscharpe achtergrond)",
-       "exif-exposureprogram-8": "Laandschap (scharpe achtergrond)",
-       "exif-subjectdistance-value": "$1 m",
-       "exif-meteringmode-0": "Onbekend",
+       "exif-exposureprogram-5": "Kreativ programma (vöärköär vöär groute skarpdedeepde)",
+       "exif-exposureprogram-6": "Akty (vöärköär vöär houge slutersnelheid)",
+       "exif-exposureprogram-7": "Portret (detailupnåme mid unskarpe achtergrund)",
+       "exif-exposureprogram-8": "Landskap (skarpe achtergrund)",
+       "exif-subjectdistance-value": "$1 meter",
+       "exif-meteringmode-0": "Unbekend",
        "exif-meteringmode-1": "Gemiddeld",
-       "exif-meteringmode-2": "Gemiddeld, naodrok op midden",
+       "exif-meteringmode-2": "Middencentreerd",
        "exif-meteringmode-3": "Spot",
-       "exif-meteringmode-4": "MultiSpot",
+       "exif-meteringmode-4": "Multi-spot",
        "exif-meteringmode-5": "Multi-segment (patrone)",
-       "exif-meteringmode-6": "Deelmeting",
-       "exif-meteringmode-255": "Aanders",
-       "exif-lightsource-0": "Onbekend",
-       "exif-lightsource-1": "Daglocht",
-       "exif-lightsource-2": "Tl-locht",
-       "exif-lightsource-3": "Tungsten (lamplocht)",
+       "exif-meteringmode-6": "Deylmeating",
+       "exif-meteringmode-255": "Anders",
+       "exif-lightsource-0": "Unbekend",
+       "exif-lightsource-1": "Daglicht",
+       "exif-lightsource-2": "TL-licht",
+       "exif-lightsource-3": "Tungsten (lamplicht)",
        "exif-lightsource-4": "Flitser",
-       "exif-lightsource-9": "Mooi weer",
-       "exif-lightsource-10": "Bewolk",
-       "exif-lightsource-11": "Schaoduw",
-       "exif-lightsource-12": "Fluorescerend daglocht (D 5700 – 7100K)",
-       "exif-lightsource-13": "Witfluorescerend daglocht (N 4600 – 5400K)",
-       "exif-lightsource-14": "Koel witfluorescerend (W 3900 – 4500K)",
-       "exif-lightsource-15": "Witfluorescerend (WW 3200 – 3700K)",
-       "exif-lightsource-17": "Standardlocht A",
-       "exif-lightsource-18": "Standardlocht B",
-       "exif-lightsource-19": "Standardlocht C",
-       "exif-lightsource-24": "ISO-studiokunstlocht",
-       "exif-lightsource-255": "Aanders",
-       "exif-flash-fired-0": "Flits is niet aofegaon",
-       "exif-flash-fired-1": "Mit flitser",
-       "exif-flash-return-0": "flits stuurt gien gegevens",
-       "exif-flash-return-2": "gien weerkaotsing van de flits vastesteld",
-       "exif-flash-return-3": "weerkaotsing van de flits vastesteld",
-       "exif-flash-mode-1": "verplicht mit flitser",
-       "exif-flash-mode-2": "flitser verplicht onderdrokt",
-       "exif-flash-mode-3": "automatiese modus",
-       "exif-flash-function-1": "Gien flitserfunksie",
-       "exif-flash-redeye-1": "rooie ogen-filter",
+       "exif-lightsource-9": "Mooi weader",
+       "exif-lightsource-10": "Bewolked",
+       "exif-lightsource-11": "Skadüw",
+       "exif-lightsource-12": "Daglicht fluorescerend (D 5700 – 7100K)",
+       "exif-lightsource-13": "Dagwit fluorescerend (N 4600 – 5400K)",
+       "exif-lightsource-14": "Kool wit fluorescerend (W 3900 – 4500K)",
+       "exif-lightsource-15": "Wit fluorescerend (WW 3200 – 3700K)",
+       "exif-lightsource-17": "Standardlicht A",
+       "exif-lightsource-18": "Standardlicht B",
+       "exif-lightsource-19": "Standardlicht C",
+       "exif-lightsource-24": "ISO-studiokünstlicht",
+       "exif-lightsource-255": "Anders",
+       "exif-flash-fired-0": "Flits is neet afgån",
+       "exif-flash-fired-1": "Flits is afgån",
+       "exif-flash-return-0": "flits stüürt geen gegeavens",
+       "exif-flash-return-2": "geen weaderkaatsing van de flits vaststeld",
+       "exif-flash-return-3": "wederkaatsing van de flits vaststeld",
+       "exif-flash-mode-1": "verplicht mid flits",
+       "exif-flash-mode-2": "flits verplicht underdrukked",
+       "exif-flash-mode-3": "automatiske modus",
+       "exif-flash-function-1": "Geen flitsfunkty",
+       "exif-flash-redeye-1": "roude-ougenredukty",
        "exif-focalplaneresolutionunit-2": "duum",
-       "exif-sensingmethod-1": "Niet vastesteld",
-       "exif-sensingmethod-2": "Eén-chip-kleursensor",
-       "exif-sensingmethod-3": "Twee-chips-kleursensor",
-       "exif-sensingmethod-4": "Dree-chips-kleurensensor",
-       "exif-sensingmethod-5": "Kleurvolgende gebiedssensor",
-       "exif-sensingmethod-7": "Dreeliendige sensor",
-       "exif-sensingmethod-8": "Kleurvolgende gebiedssensor",
+       "exif-sensingmethod-1": "Neet vaststeld",
+       "exif-sensingmethod-2": "Eyn-chip-klöörsensor",
+       "exif-sensingmethod-3": "Twey-chip-klöörsensor",
+       "exif-sensingmethod-4": "Dree-chip-klöörensensor",
+       "exif-sensingmethod-5": "Klöörvolgende gebeedssensor",
+       "exif-sensingmethod-7": "Dreelynige sensor",
+       "exif-sensingmethod-8": "Klöörvolgende gebeedssensor",
        "exif-filesource-3": "Digitale fotokamera",
-       "exif-scenetype-1": "n Drekt efotografeerden aofbeelding",
-       "exif-customrendered-0": "Normaal",
-       "exif-customrendered-1": "An-epas",
-       "exif-exposuremode-0": "Automaties",
-       "exif-exposuremode-1": "Haandmaotig",
-       "exif-exposuremode-2": "Belochtingsrie",
-       "exif-whitebalance-0": "Automaties",
-       "exif-whitebalance-1": "Haandmaotig",
-       "exif-scenecapturetype-0": "standard",
-       "exif-scenecapturetype-1": "laandschap",
-       "exif-scenecapturetype-2": "pertret",
-       "exif-scenecapturetype-3": "Nachtscène",
-       "exif-gaincontrol-0": "Gien",
-       "exif-gaincontrol-1": "Lege pieken umhoge",
-       "exif-gaincontrol-2": "Hoge pieken umhoge",
-       "exif-gaincontrol-3": "Lege pieken ummeneer",
-       "exif-gaincontrol-4": "Hoge pieken ummeneer",
+       "exif-scenetype-1": "Een direkt fotografeerde afbealding",
+       "exif-customrendered-0": "Normale verwarking",
+       "exif-customrendered-1": "Anpasde verwarking",
+       "exif-customrendered-2": "HDR (geen origineel seakerd)",
+       "exif-customrendered-3": "HDR (origineel seakerd)",
+       "exif-customrendered-4": "Origineel (vöär HDR)",
+       "exif-customrendered-6": "Panorama",
+       "exif-customrendered-7": "Portret-HDR",
+       "exif-customrendered-8": "Portret",
+       "exif-exposuremode-0": "Automatisk",
+       "exif-exposuremode-1": "Handmåtige belichting",
+       "exif-exposuremode-2": "Belichtingsryge",
+       "exif-whitebalance-0": "Automatiske witbalans",
+       "exif-whitebalance-1": "Handmåtige witbalans",
+       "exif-scenecapturetype-0": "Standard",
+       "exif-scenecapturetype-1": "Landskap",
+       "exif-scenecapturetype-2": "Portret",
+       "exif-scenecapturetype-3": "Nachtscene",
+       "exif-gaincontrol-0": "Geen",
+       "exif-gaincontrol-1": "Laege pyken ümhouge",
+       "exif-gaincontrol-2": "Houge pyken ümhouge",
+       "exif-gaincontrol-3": "Laege pyken ümdale",
+       "exif-gaincontrol-4": "Houge pyken ümdale",
        "exif-contrast-0": "Normaal",
-       "exif-contrast-1": "Zachte",
+       "exif-contrast-1": "Sachte",
        "exif-contrast-2": "Hard",
        "exif-saturation-0": "Normaal",
-       "exif-saturation-1": "Leeg",
-       "exif-saturation-2": "Hoge",
+       "exif-saturation-1": "Laeg",
+       "exif-saturation-2": "Houge",
        "exif-sharpness-0": "Normaal",
-       "exif-sharpness-1": "Zachte",
+       "exif-sharpness-1": "Sachte",
        "exif-sharpness-2": "Hard",
-       "exif-subjectdistancerange-0": "Onbekend",
-       "exif-subjectdistancerange-1": "Macro",
-       "exif-subjectdistancerange-2": "Kortbie",
-       "exif-subjectdistancerange-3": "Veeraof",
-       "exif-gpslatitude-n": "Noorderbreedte",
-       "exif-gpslatitude-s": "Zujerbreedte",
-       "exif-gpslongitude-e": "Oosterlengte",
-       "exif-gpslongitude-w": "Westerlengte",
-       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter|meter}} boven de zeespegel",
-       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter|meter}} onder de zeespegel",
-       "exif-gpsstatus-a": "Bezig mit meten",
-       "exif-gpsstatus-v": "Meetinteroperebiliteit",
-       "exif-gpsmeasuremode-2": "2-dimensionale meting",
-       "exif-gpsmeasuremode-3": "3-dimensionale meting",
-       "exif-gpsspeed-k": "Kilometer per uur",
-       "exif-gpsspeed-m": "Miel per ure",
-       "exif-gpsspeed-n": "Kneupen",
+       "exif-subjectdistancerange-0": "Unbekend",
+       "exif-subjectdistancerange-1": "Makro",
+       "exif-subjectdistancerange-2": "Kortby",
+       "exif-subjectdistancerange-3": "Wyd weg",
+       "exif-gpslatitude-n": "Noorderbreydde",
+       "exif-gpslatitude-s": "Süderbreydde",
+       "exif-gpslongitude-e": "Ousterlängde",
+       "exif-gpslongitude-w": "Westerlängde",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|meter}} boaven de seyspegel",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|meter}} under de seyspegel",
+       "exif-gpsstatus-a": "Beasig mid meaten",
+       "exif-gpsstatus-v": "Meatinteroperabiliteit",
+       "exif-gpsmeasuremode-2": "2-dimensionale meating",
+       "exif-gpsmeasuremode-3": "3-dimensionale meating",
+       "exif-gpsspeed-k": "Kilometer per üre",
+       "exif-gpsspeed-m": "Myl per üre",
+       "exif-gpsspeed-n": "Knoupen",
        "exif-gpsdestdistance-k": "Kilometer",
-       "exif-gpsdestdistance-m": "Miel",
-       "exif-gpsdestdistance-n": "Zeemielen",
-       "exif-gpsdop-excellent": "Uutstekend ($1)",
-       "exif-gpsdop-good": "Goed ($1)",
+       "exif-gpsdestdistance-m": "Myl",
+       "exif-gpsdestdistance-n": "Seymylen",
+       "exif-gpsdop-excellent": "Uutsteakend ($1)",
+       "exif-gpsdop-good": "Good ($1)",
        "exif-gpsdop-moderate": "Gemiddeld ($1)",
-       "exif-gpsdop-fair": "Redelik ($1)",
-       "exif-gpsdop-poor": "Slicht ($1)",
-       "exif-objectcycle-a": "Allinnig smarnens",
-       "exif-objectcycle-p": "Allinnig savends",
-       "exif-objectcycle-b": "'s Mannen én 's avens",
-       "exif-gpsdirection-t": "Waore richting",
-       "exif-gpsdirection-m": "Magnetiese richting",
-       "exif-ycbcrpositioning-1": "In t midden",
-       "exif-ycbcrpositioning-2": "E-kositueerd",
-       "exif-dc-contributor": "Luui die bie-edreugen hebben",
+       "exif-gpsdop-fair": "Readelik ($1)",
+       "exif-gpsdop-poor": "Slecht ($1)",
+       "exif-objectcycle-a": "Allinnig smargens",
+       "exif-objectcycle-p": "Allinnig såvends",
+       "exif-objectcycle-b": "Smargens en såvends",
+       "exif-gpsdirection-t": "Wåre richting",
+       "exif-gpsdirection-m": "Magnetiske richting",
+       "exif-ycbcrpositioning-1": "In et midden",
+       "exif-ycbcrpositioning-2": "Kositueerd",
+       "exif-dc-contributor": "Bydragers",
        "exif-dc-coverage": "Ruumtelike of temporele reikwiedte van media",
        "exif-dc-date": "Daotum(s)",
-       "exif-dc-publisher": "Uutgever",
-       "exif-dc-relation": "Verwaante media",
+       "exif-dc-publisher": "Uutgeaver",
+       "exif-dc-relation": "Verwande media",
        "exif-dc-rights": "Rechten",
        "exif-dc-source": "Bronmedia",
        "exif-dc-type": "Soort media",
index 8fc0095..866205c 100644 (file)
        "rcfilters-filter-showlinkedfrom-label": "Prikaži promjene na povezanim stranicama",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Stranice na koje se povezuje</strong> izabrana stranica",
        "rcfilters-filter-showlinkedto-option-label": "<strong>Stranice koje povezuju</strong> na izabranu stranicu",
+       "rcfilters-allcontents-label": "Sav sadržaj",
+       "rcfilters-alldiscussions-label": "Svi razgovori",
        "rcnotefrom": "Ispod {{PLURAL:$5|je izmjena|su izmjene}} od <strong>$3, $4</strong> (prikazano ih do <strong>$1</strong>).",
        "rclistfromreset": "Vrati na zadano izbor datuma",
        "rclistfrom": "Prikaži nove promjene počevši od $3 $2",
index 5cbecc3..6a35a73 100644 (file)
        "tog-useeditwarning": "Avvisa quando si esce da una pagina di modifica con modifiche non salvate",
        "tog-prefershttps": "Usa sempre una connessione sicura quando si effettua l'accesso",
        "tog-showrollbackconfirmation": "Mostra una richiesta di conferma quando si clicca su un link di rollback",
+       "tog-requireemail": "Richiedi email per cambiare la password",
        "underline-always": "Sempre",
        "underline-never": "Mai",
        "underline-default": "Impostazioni predefinite del browser o del tema",
        "undo-norev": "La modifica non può essere annullata perché non esiste o è stata cancellata.",
        "undo-nochange": "Sembra che la modifica sia già stata annullata.",
        "undo-summary": "Annullata la modifica $1 di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussione]])",
+       "undo-summary-anon": "Annulla la modifica $1 di [[Speciale:Contributi/$2|$2]]",
        "undo-summary-username-hidden": "Annullata la modifica $1 di un utente nascosto",
        "cantcreateaccount-text": "La registrazione è stata bloccata da [[User:$3|$3]] per questo indirizzo IP ('''$1''').\n\nLa motivazione del blocco fornita da $3 è la seguente: ''$2''",
        "cantcreateaccount-range-text": "La registrazione da indirizzi IP nell'intervallo <strong>$1</strong>, che include il tuo (<strong>$4</strong>), è stata bloccata da [[User:$3|$3]].\n\nLa motivazione fornita da $3 è <em>$2</em>",
        "move-page-legend": "Spostamento di pagina",
        "movepagetext": "Questo modulo consente di rinominare una pagina, spostando tutta la sua cronologia al nuovo nome. La pagina attuale diverrà automaticamente un redirect al nuovo titolo. Puoi aggiornare automaticamente i redirect che puntano al titolo originale. Puoi decidere di non farlo, ma ricordati di verificare che lo spostamento non abbia creato [[Special:DoubleRedirects|doppi redirect]] o [[Special:BrokenRedirects|redirect errati]]. L'onere di garantire che i collegamenti alla pagina restino corretti spetta a chi la sposta.\n\nSi noti che la pagina <strong>non</strong> sarà spostata se ne esiste già una con il nuovo nome, a meno che quest'ultima non sia costituita solo da un redirect e sia priva di versioni precedenti. In caso di spostamento errato si può quindi tornare subito al vecchio titolo, e non è possibile sovrascrivere per errore una pagina già esistente.\n\n<strong>Nota:</strong>\nUn cambiamento così drastico può creare contrattempi e problemi, soprattutto per le pagine più visitate. Accertarsi di aver valutato le conseguenze dello spostamento prima di procedere.",
        "movepagetext-noredirectfixer": "Questo modulo consente di rinominare una pagina, spostando tutta la sua cronologia al nuovo nome. La pagina attuale diverrà automaticamente un redirect al nuovo titolo. Controlla che lo spostamento non abbia creato [[Special:DoubleRedirects|doppi redirect]] o [[Special:BrokenRedirects|redirect errati]]. L'onere di garantire che i collegamenti alla pagina restino corretti spetta a chi la sposta.\n\nSi noti che la pagina <strong>non</strong> sarà spostata se ne esiste già una con il nuovo nome, a meno che non sia costituita solo da un redirect e sia priva di versioni precedenti. In caso di spostamento errato si può quindi tornare subito al vecchio titolo, e non è possibile sovrascrivere per errore una pagina già esistente.\n\n<strong>Nota:</strong>\nUn cambiamento così drastico può creare contrattempi e problemi, soprattutto per le pagine più visitate. Accertarsi di aver valutato le conseguenze dello spostamento prima di procedere.",
+       "movepagetext-noredirectsupport": "Usare il seguente modulo rinominerà una pagina, spostando tutta la sua cronologia al nuovo nome. È tua la responsabilità di assicurarti che i collegamenti continuino a puntare dove dovrebbero.\n\nNotare che la pagina <strong>non</strong> sarà spostata se è già presente una pagina presso il nuovo titolo.\nQuesto comporta che in caso di errori puoi spostare nuovamente una pagina al nome precedente, e che non puoi sovrascrivere una pagina esistente.\n\n<strong>Nota:</strong>\nQuesto cambiamento può essere drastico e inaspettato se la pagina è popolare; per favore assicurati di capire le conseguenze di ciò prima di procedere.",
        "movepagetalktext": "Se selezioni questa casella, la corrispondente pagina di discussione sarà spostata automaticamente al nuovo titolo, a meno che esista già una pagina di discussione non vuota.\n\nIn questi casi, se lo ritieni opportuno, dovrai spostare o unire manualmente la pagina.",
        "moveuserpage-warning": "'''Attenzione:''' Si sta per spostare una pagina utente. Nota che verrà spostata solamente la pagina. L'utente ''non'' sarà rinominato.",
        "movecategorypage-warning": "<strong>Attenzione:</strong> si sta per spostare una categoria. Solo questa pagina verrà spostata: tutte le pagine nella vecchia categoria <em>non</em> saranno inserite nella nuova.",
        "specialpages-group-developer": "Strumenti per gli sviluppatori",
        "blankpage": "Pagina vuota",
        "intentionallyblankpage": "Questa pagina è lasciata volutamente vuota.",
+       "disabledspecialpage-disabled": "Questa pagina è stata disabilitata da un amministratore di sistema.",
        "external_image_whitelist": " #Lasciare questa riga esattamente com'è<pre>\n#Inserire i frammenti delle espressioni regolari (solo la parte che va fra //) di seguito\n#Queste verranno messe a confronto con gli indirizzi URL delle immagini esterne (hotlinked)\n#Le corrispondenze saranno mostrate come immagini, altrimenti verrà mostrato solo un collegamento\n#Le righe che iniziano con # sono considerate dei commenti\n#La differenza tra maiuscole e minuscole non è significativa\n\n#Inserire sopra questa riga tutti i frammenti di regex. Lasciare questa riga esattamente com'è</pre>",
        "tags": "Etichette di modifiche valide",
        "tag-filter": "Filtra per [[Special:Tags|etichetta]]:",
index f143c93..20e2bb7 100644 (file)
@@ -98,7 +98,8 @@
                        "Puntti ja",
                        "マツムシ",
                        "神樂坂秀吉",
-                       "Yuukin0248"
+                       "Yuukin0248",
+                       "Reiwa period"
                ]
        },
        "tog-underline": "リンクの下線:",
        "rcfilters-filter-showlinkedto-label": "指定されたページのリンク元の変更を表示",
        "rcfilters-filter-showlinkedto-option-label": "指定されたページに<strong>リンクしているページ(リンク元)</strong>",
        "rcfilters-target-page-placeholder": "ページ名(またはカテゴリ名)を入力",
+       "rcfilters-alldiscussions-label": "全ての議論",
        "rcnotefrom": "以下は<strong>$3 $4</strong>以降の{{PLURAL:$5|更新です}} (最大 <strong>$1</strong> 件)。",
        "rclistfromreset": "日時指定をリセット",
        "rclistfrom": "$3の$2以降の更新を表示する",
        "backend-fail-contenttype": "「$1」に保存するコンテンツの種類が判断できませんでした。",
        "backend-fail-batchsize": "ストレージバックエンドは $1 件のファイル{{PLURAL:$1|操作}}のバッチを与えられました; 上限は $2 件の{{PLURAL:$2|操作}}です。",
        "backend-fail-usable": "権限が不足している、またはディレクトリ/コンテナーがないため、ファイル「$1」の読み取り/書き込みができません。",
+       "backend-fail-stat": "ファイル\"$1\"の状態を読み込めませんでした。",
        "filejournal-fail-dbconnect": "ストレージバックエンド「$1」のジャーナルデータベースに接続できません。",
        "filejournal-fail-dbquery": "ストレージバックエンド「$1」のジャーナルデータベースを更新できません。",
        "lockmanager-notlocked": "「$1」をロック解除できませんでした。ロックされていません。",
        "listfiles-userdoesnotexist": "利用者アカウント「$1」は登録されていません。",
        "imgfile": "ファイル",
        "listfiles": "ファイル一覧",
+       "listfiles_subpage": "$1 によるアップロード",
        "listfiles_thumb": "サムネイル",
        "listfiles_date": "日時",
        "listfiles_name": "名前",
index 214cace..8ed1011 100644 (file)
        "group-all": "(pêro)",
        "group-user-member": "Karber",
        "group-bot-member": "Bot",
-       "group-sysop-member": "İdareker",
+       "group-sysop-member": "{{GENDER:$1|idareker}}",
        "group-bureaucrat-member": "Burokrat",
        "grouppage-user": "{{ns:project}}:Karberi",
        "grouppage-bot": "{{ns:project}}:Boti",
index e8081a4..f293d56 100644 (file)
        "listfiles-userdoesnotexist": "계정 \"$1\"은 등록되지 않았습니다.",
        "imgfile": "파일",
        "listfiles": "파일 목록",
+       "listfiles_subpage": "$1님이 올림",
        "listfiles_thumb": "섬네일",
        "listfiles_date": "날짜",
        "listfiles_name": "이름",
        "ipblocklist-legend": "차단된 사용자 찾기",
        "blocklist-userblocks": "계정에 대한 차단 숨기기",
        "blocklist-tempblocks": "기한이 정해진 차단을 숨기기",
+       "blocklist-indefblocks": "무기한 차단 숨기기",
        "blocklist-addressblocks": "단일 IP 차단을 숨기기",
        "blocklist-type": "유형:",
        "blocklist-type-opt-all": "모두",
        "mycustomjsredirectprotected": "넘겨주기이면서 사용자 공간 안에 참조하고 있지 않으므로 이 자바스크립트 페이지를 편집할 권한이 없습니다.",
        "easydeflate-invaliddeflate": "주어진 컨텐츠가 적절히 압축되지 않았습니다",
        "unprotected-js": "보안 상의 이유로 자바스크립트는 보호되지 않은 문서로부터 불러올 수 없습니다. 미디어위키: 이름공간이나 사용자의 하위 문서에서만 자바스크립트를 만들어 주십시오.",
-       "userlogout-continue": "로그아웃하시겠습니까?"
+       "userlogout-continue": "로그아웃하시겠습니까?",
+       "rest-no-match": "요청된 상대 경로($1)는 알려진 핸들러와 일치하지 않습니다"
 }
index 3767ed8..1dd2e86 100644 (file)
        "rcfilters-filterlist-title": "Panyariang",
        "rcfilters-filterlist-noresults": "Indak ado panyariang ditamukan",
        "rcfilters-filter-editsbyself-label": "Suntiangan Sanak",
+       "rcfilters-filter-editsbyself-description": "Kontribusi Sanak",
        "rcfilters-filter-editsbyother-label": "Suntiangan urang lain",
+       "rcfilters-filter-editsbyother-description": "Sadoalah parubahan kacuali parubahan miliak surang.",
+       "rcfilters-filtergroup-user-experience-level": "Pandaftaran jo pangalaman pangguno",
        "rcfilters-filter-user-experience-level-registered-label": "Tadaftar",
+       "rcfilters-filter-user-experience-level-registered-description": "Panyuntiang masuak log",
        "rcfilters-filter-user-experience-level-unregistered-label": "Indak tadaftar",
+       "rcfilters-filter-user-experience-level-unregistered-description": "Panyuntiang nan indak masuak log",
        "rcfilters-filter-user-experience-level-newcomer-label": "Pandatang baru",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Panyuntiang tadaftar nan mampunyoi suntiangan kurang dari 10 suntiangan jo aktivitas salamo 4 ari.",
+       "rcfilters-filter-user-experience-level-learner-label": "Urang baru",
+       "rcfilters-filter-user-experience-level-learner-description": "Panyuntiang tadaftar nan pangalamannyo barado antaro \"pangguno baru\" jo \"pangguno bapangalaman\".",
+       "rcfilters-filter-user-experience-level-experienced-label": "Pangguno bapangalaman",
+       "rcfilters-filter-user-experience-level-experienced-description": "Panyuntiang tadaftar jo labiah dari 500 suntiangan sarato aktivitas salamo 30 ari.",
+       "rcfilters-filtergroup-automated": "Kontribusi otomatis",
        "rcfilters-filter-bots-label": "Bot",
+       "rcfilters-filter-bots-description": "Suntiangan nan dibuek jo pakakeh taotomatisasi.",
        "rcfilters-filter-humans-label": "Manusio (bukan bot)",
+       "rcfilters-filter-humans-description": "Suntiangan nan dibuek dek panyuntiang manusia.",
+       "rcfilters-filtergroup-reviewstatus": "Status paninjauan",
+       "rcfilters-filter-reviewstatus-unpatrolled-description": "Suntiangan nan indak ditandoi tapatroli, baiak sacaro manual atau otomatis.",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "Alun dipatroli",
+       "rcfilters-filter-reviewstatus-manual-description": "Suntiangan nan sacaro manual ditandoi tapatroli",
+       "rcfilters-filter-reviewstatus-manual-label": "Tapatroli manual",
+       "rcfilters-filter-reviewstatus-auto-description": "Suntiangan dek pangguno bapangalaman nan kontribusinyo sacaro otomatis ditandoi sabagai tapatroli",
+       "rcfilters-filter-reviewstatus-auto-label": "Otomatis tapatroli",
+       "rcfilters-filtergroup-significance": "Signifikan",
        "rcfilters-filter-minor-label": "Suntiangan ketek",
+       "rcfilters-filter-minor-description": "Suntiangan nan ditandoi panyuntiang sabagai suntiangan ketek",
        "rcfilters-filter-major-label": "Nan indak suntiangan ketek",
+       "rcfilters-filter-major-description": "Suntiangan nan ditandoi sabagai suntiangan ketek",
+       "rcfilters-filtergroup-watchlist": "Halaman nan dipantau",
+       "rcfilters-filter-watchlist-watched-label": "Daftar pantau",
+       "rcfilters-filter-watchlist-watched-description": "Parubahan pado laman dalam pantauan Sanak.",
+       "rcfilters-filter-watchlist-watchednew-label": "Parubahan Daftar Pantauan baru.",
+       "rcfilters-filter-watchlist-watchednew-description": "Parubahan laman-laman nan dipantau nan alun disinggahi dek Sanak sajak parubahan tajadi.",
+       "rcfilters-filter-watchlist-notwatched-label": "Indak dalam daftar pantauan",
+       "rcfilters-filter-watchlist-notwatched-description": "Sadonyo salain parubahan pado laman nan dipantau.",
+       "rcfilters-filtergroup-watchlistactivity": "Aktivitas daftar pantauan",
+       "rcfilters-filter-watchlistactivity-unseen-label": "Parubahan nan alun dicaliak",
+       "rcfilters-filter-watchlistactivity-unseen-description": "Parubahan laman-laman nan dipantau nan alun disinggahi dek Sanak sajak parubahan tajadi.",
+       "rcfilters-filter-watchlistactivity-seen-label": "Parubahan nan alah tacaliak",
+       "rcfilters-filter-watchlistactivity-seen-description": "Parubahan laman-laman nan disinggahi Sanak sajak parubahan tajadi.",
+       "rcfilters-filtergroup-changetype": "Jinih parubahan",
        "rcfilters-filter-pageedits-label": "Suntiangan laman",
+       "rcfilters-filter-pageedits-description": "Parubahan pado konten wiki, rundiang, deskripsi kategori...",
        "rcfilters-filter-newpages-label": "Laman baru",
+       "rcfilters-filter-newpages-description": "Suntiangan nan mambuek laman baru",
        "rcfilters-filter-categorization-label": "Parubahan kategori",
+       "rcfilters-filter-categorization-description": "Rakam jajak laman nan alah ditambahkan atau diapuih dari kategori.",
        "rcfilters-filter-logactions-label": "Tindakan tacataik",
+       "rcfilters-filter-logactions-description": "Tindakan administratif, pambuatan akun, pangapusan halaman, pangunggahan...",
+       "rcfilters-hideminor-conflicts-typeofchange": "Jinih parubahan tatantu indak dapek ditandoi sabagai \"ketek\", jadi panyariang ko bakonflik jo panyariang Jinih Parubahan iko: $1",
+       "rcfilters-filtergroup-lastrevision": "Revisi tabaru",
        "rcfilters-filter-lastrevision-label": "Revisi tabaru",
        "rcfilters-filter-lastrevision-description": "Anyo parubahan tabaru pado laman ko.",
+       "rcfilters-filter-previousrevision-label": "Bukan revisi tabaru",
+       "rcfilters-filter-previousrevision-description": "Sadoalah parubahan nan bukan marupokan \"revisi tabaru\".",
+       "rcfilters-filter-excluded": "Indak tamasuak",
+       "rcfilters-tag-prefix-namespace-inverted": "<strong>:bukan</strong> $1",
+       "rcfilters-exclude-button-off": "Salain nan tapiliah",
+       "rcfilters-exclude-button-on": "Salain nan tapiliah",
        "rcfilters-view-tags": "Suntiangan ditandoi",
+       "rcfilters-view-namespaces-tooltip": "Sariang hasil manuruik ruangnamo",
        "rcfilters-liveupdates-button": "Parubahan langsuang",
        "rcfilters-liveupdates-button-title-on": "Matian parubahan langsuang",
        "rcnotefrom": "Di bawah iko adolah {{PLURAL:$5|parubahan|babagai parubahan}} sajak <strong>$3, $4</strong> (ditampilkan sampai <strong>$1</strong> parubahan).",
index 63b7e65..55a05eb 100644 (file)
        "listfiles-userdoesnotexist": "ഉപയോക്തൃ അംഗത്വം \"$1\" എടുക്കപ്പെട്ടിട്ടില്ല.",
        "imgfile": "പ്രമാണം",
        "listfiles": "പ്രമാണങ്ങളുടെ പട്ടിക",
+       "listfiles_subpage": "$1 ചെയ്ത അപ്‌ലോഡുകൾ",
        "listfiles_thumb": "ലഘുചിത്രം",
        "listfiles_date": "തീയതി",
        "listfiles_name": "പേര്",
index c41fa88..e2ff083 100644 (file)
        "createaccountmail": "Bruk et midlertidig, tilfeldig passord, og send det til angitt e-postadresse",
        "createaccountmail-help": "Kan brukes til å opprette en konto for en annen person uten at du får vite passordet.",
        "createacct-realname": "Virkelig navn (valgfritt)",
-       "createacct-reason": "Årsak",
+       "createacct-reason": "Årsak (logges offentlig)",
        "createacct-reason-ph": "Hvorfor lager du en annen bruker",
        "createacct-reason-help": "Beskjed vist i kontoopprettelsesloggen",
        "createacct-submit": "Opprett konto",
        "listfiles-userdoesnotexist": "Brukerkontoen «$1» er ikke registrert.",
        "imgfile": "fil",
        "listfiles": "Filliste",
+       "listfiles_subpage": "Opplastinger av $1",
        "listfiles_thumb": "Miniatyrbilde",
        "listfiles_date": "Dato",
        "listfiles_name": "Navn",
        "ipblocklist-legend": "Finn en blokkert bruker",
        "blocklist-userblocks": "Skjul kontoblokkeringer",
        "blocklist-tempblocks": "Skjul midlertidige blokkeringer",
+       "blocklist-indefblocks": "Skjul blokkeringer på ubestemt tid",
        "blocklist-addressblocks": "Skjul individuelle IP-blokkeringer",
        "blocklist-type": "Type:",
        "blocklist-type-opt-all": "Alle",
        "mycustomjsredirectprotected": "Du har ikke tillatelse til å redigere denne JavaScript-siden fordi den er en omdirigering og ikke peker til en annen side i ditt brukernavnerom.",
        "easydeflate-invaliddeflate": "Det gitte innholdet er ikke riktig komprimert",
        "unprotected-js": "Av sikkerhetsårsaker kan ikke JavaScript lastes fra ubeskyttede sider. Bare skap JavaScript i MediaWiki-navnerommet eller som en brukerunderside",
-       "userlogout-continue": "Ønsker du å logge ut?"
+       "userlogout-continue": "Ønsker du å logge ut?",
+       "rest-prefix-mismatch": "Den forespurte stien ($1) var ikke i REST-API-ets rotsti ($2)",
+       "rest-wrong-method": "Den forespurte metoden ($1) var ikke {{PLURAL:$3|den tillatte metoden|blant de tillatte metodene}} for denne stien ($2)",
+       "rest-no-match": "Den forespurte relative stien ($1) passet ikke med noen kjent behandler"
 }
index d7e5a1c..893a2f2 100644 (file)
        "moredotdotdot": "Meyr...",
        "morenotlisted": "Disse lyste is möägelik neet kompleet.",
        "mypage": "Brukerssyde",
-       "mytalk": "Myn oaverleg",
+       "mytalk": "Oaverleg",
        "anontalk": "Oaverleg",
        "navigation": "Navigaty",
        "and": "&#32;en",
        "mycustomcssprotected": "Jy hebbet geen rechten üm disse CSS-syde te bewarken.",
        "mycustomjsprotected": "Jy hebbet geen rechten üm disse JavaScript-syde te bewarken.",
        "myprivateinfoprotected": "Jy hebbet geen rechten üm juw priveegegeavens te bewarken.",
-       "mypreferencesprotected": "Jy hebbet geen rechten üm juw vöärköären an te passen.",
+       "mypreferencesprotected": "Jy hebbet geen rechten üm juw instellingen an te passen.",
        "ns-specialprotected": "Speciale syden künnet neet bewarked wörden.",
        "titleprotected": "Et anmaken van disse syde is beveiligd döär [[User:$1|$1]].\nDe upgeaven readen is <em>$2</em>.",
        "filereadonlyerror": "Kun et bestand \"$1\" neet anpassen ümdat de bestandsmap \"$2\" up dit moment up allinnig-leasen steyt.\n\nDe upgeaven readen is: \"$3\".",
        "virus-unknownscanner": "onbekend antivirusprogramma:",
        "logouttext": "'''Je bin noen aofemeld.'''\n\nt Kan ween dat der wat ziejen bin die weeregeven wörden as of je an-emeld bin totda'j t tussengeheugen van joew webkieker leegmaken.",
        "welcomeuser": "Welkom, $1!",
-       "welcomecreation-msg": "Joew gebruker is an-emaakt.\nVergeet niet joew [[Special:Preferences|veurkeuren veur {{SITENAME}}]] an te passen.",
+       "welcomecreation-msg": "Juw gebrukerskonto is anmaked.\nVergeat neet juw [[Special:Preferences|vöärköären vöär {{SITENAME}}]] in te stellen.",
        "yourname": "Brukersname",
        "userlogin-yourname": "Brukersname",
        "userlogin-yourname-ph": "Geav juw brukersname up",
        "userlogin-noaccount": "Heb jy noch geen brukersname?",
        "userlogin-joinproject": "Wörd lid van {{SITENAME}}",
        "createaccount": "Inskryven",
-       "userlogin-resetpassword-link": "Juuw wachtwoord vergeaten?",
+       "userlogin-resetpassword-link": "Wachtwoord vergeaten?",
        "userlogin-helplink2": "Hülpe by et anmelden",
        "userlogin-loggedin": "Je binnen al an-emeld as {{GENDER:$1|$1}}.\nGebruuk et formulyr hyrunder üm an te melden as een andere gebruker.",
        "userlogin-createanother": "Een andere gebrukerskonto anmaken",
        "php-mail-error-unknown": "Der was n onbekende fout mit de mail()-funksie van PHP",
        "user-mail-no-addy": "Eprobeerd n berichjen te versturen zonder n netpostadres",
        "user-mail-no-body": "Der is eprobeerd n netbreef zonder tekste of mit n biester korte tekste te versturen.",
-       "changepassword": "Wachtwoord wiezigen",
+       "changepassword": "Wachtwoord wysigen",
        "resetpass_announce": "Um t anmelden te voltooien, mu'j n niej wachtwoord invoeren.",
        "resetpass_text": "<!-- Tekste hier invoegen -->",
        "resetpass_header": "Wachtwoord wiezigen",
        "summary": "Samenvatting:",
        "subject": "Onderwarp:",
        "minoredit": "kleine wysiging",
-       "watchthis": "volg disse syde",
+       "watchthis": "Volg disse syde",
        "savearticle": "Syde uutgeaven",
        "savechanges": "Wysigingen uutgeaven",
        "publishpage": "Zied uutbrengen",
        "showpreview": "Bewarking nåkyken",
        "showdiff": "Verskil bekyken",
        "blankarticle": "<strong>Waorschuwing:</strong> de zied die'j anmaken willen is leeg.\nA'j noen weer op \"$1\" klikken, dan wördt de zied an-emaakt zonder enige inhoud.",
-       "anoneditwarning": "<strong>Waorschuwing:</strong> je bin niet an-emeld.\nJoew IP-adres zal op-esleugen wörden a'j wiezigingen op disse zied anbrengen. A'j je eigen <strong>[$1 anmelden]</strong> of <strong>[$2 inschrieven]</strong> dan koemen joew bewarkingen onder joew gebrukersnaam te staon, samen mit aandere veurdelen.",
+       "anoneditwarning": "<strong>Wårsküwing:</strong> jy binnet neet anmelded. Juw IP-adresse sal vöär ydereyne sichtbår weasen as jy wysigingen up disse syde anbrenget. As jy juw eigen <strong>[$1 anmeldet]</strong> of <strong>[$2 inskryvet]</strong> dan kommen juw bewarkingen under juw brukersname te stån, samen mid andere vöärdeylen.",
        "anonpreviewwarning": "''Je bin niet an-emeld.''\n''Deur de bewarking op te slaon wörden joew IP-adres op-esleugen in de ziedgeschiedenisse.''",
        "missingsummary": "'''Herinnering:''' je hebben gien samenvatting op-egeven veur de bewarking. A'j noen weer op ''Opslaon'' klikken wörden de bewarking zonder samenvatting op-esleugen.",
        "missingcommenttext": "Skryv een upmarking.",
        "newarticletext": "Disse zied besteet nog niet.\nIn t veld hieronder ku'j wat schrieven um disse zied an te maken (meer informasie vie'j op de [$1 hulpzied]).\nA'j hier per ongelok terechtekeumen bin gebruuk dan de knoppe '''veurige''' um weerumme te gaon.",
        "anontalkpagetext": "----\n<em>Disse oaverlegsyde höyrt by een anonyme bruker dee noch geen brukersname hevt, of et neet bruukt.</em>\nDårümme bruken wy et IP-adresse ter identifikaty. Een IP-adresse kan döär meyrere lüde bruked wörden. As jy een anonyme bruker binnet, en et gevööl hebbet dat jy berichten kryget dee neet vöär ju bedoold binnet [[Special:CreateAccount|skryv ju eigen dan in]] of [[Special:UserLogin|meld ju eigen an]] üm verwarring mid andere anonyme brukers in de tokumst te vöärkommen.''",
        "noarticletext": "Der steyt nun geen tekst up disse syde.\nJy künnet [[Special:Search/{{PAGENAME}}|de titel upsöken]] in andere syden,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} söken in de logboken],\nof [{{fullurl:{{FULLPAGENAME}}|action=edit}} disse syde anmaken]</span>.",
-       "noarticletext-nopermission": "Op disse zied steet gien tekste.\nJe kunnen [[Special:Search/{{PAGENAME}}|zeuken naor disse term]] in aandere ziejen of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboeken deurzeuken]</span>, mer je hebben gien rechten um disse zied an te maken.",
+       "noarticletext-nopermission": "Up disse syde steyt geen tekst.\nJy künnet [[Special:Search/{{PAGENAME}}|söken nå disse term]] in andere syden of\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} de logboken döärsöken]</span>, mär jy hebbet geen rechten üm disse syde an te maken.",
        "missing-revision": "De versie #$1 van de zied \"{{FULLPAGENAME}} besteet niet.\n\nDit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.\nWaorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
        "userpage-userdoesnotexist": "Je bewarken n gebrukerszied van n gebruker die niet besteet (gebruker \"<nowiki>$1</nowiki>\"). Kiek effen nao o'j disse zied wel anmaken/bewarken willen.",
        "userpage-userdoesnotexist-view": "Gebruker \"$1\" steet hier niet in-eschreven",
        "rev-suppressed-unhide-diff": "Eén van de bewarkingen in disse vergeliekingen is '''vortedaon'''.\nAs der meer informasie is, ku'j t vienen in t [{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} logboek mit onderdrokten informasie].\nJe kunnen [$1 de verschillen bekieken] a'j willen.",
        "rev-deleted-diff-view": "Eén van de bewarkingen veur de verschillen die'j op-evreugen hebben, is '''vortedaon'''.\nJe kunnen disse verschillen bekieken. Misschien steet der meer over in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
        "rev-suppressed-diff-view": "Eén van de bewarkingen veur de verschillen die'j op-evreugen hebben, is '''onderdrokt'''.\nJe kunnen disse verschillen bekieken. Misschien steet der over in t [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} logboek mit onderdrokten versies].",
-       "rev-delundel": "bekiek/verbarg",
+       "rev-delundel": "bekyken/verbargen",
        "rev-showdeleted": "bekiek",
        "revisiondelete": "Wiezigingen vortdoon/herstellen",
        "revdelete-nooldid-title": "Gien doelversie",
        "prevn": "vöärige {{PLURAL:$1|$1}}",
        "nextn": "volgende {{PLURAL:$1|$1}}",
        "prevn-title": "{{PLURAL:$1|Veurig resultaot|Veurige $1 resultaoten}}",
-       "nextn-title": "{{PLURAL:$1|Volgend resultaot|Volgende $1 resultaoten}}",
+       "nextn-title": "{{PLURAL:$1|Volgend resultaat|Volgende $1 resultaten}}",
        "shown-title": "Låt $1 {{PLURAL:$1|resultaat|resultaten}} per syde seen",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) bekyken.",
        "searchmenu-exists": "'''Der is n zied mit de naam \"[[:$1]]\" op disse wiki.'''",
-       "searchmenu-new": "<strong>De zied \"[[:$1]]\" op disse wiki anmaken!</strong> \n{{PLURAL:$2|0=|Zie oek de zied mit joew zeukresultaoten.|Zie oek de lieste mit evunnen zeukresultaoten.}}",
+       "searchmenu-new": "<strong>De syde \"[[:$1]]\" up disse wiki anmaken!</strong> \n{{PLURAL:$2|0=|See ouk de syde mid juw söökresultaten.|See ouk de lyste mid vünden söökresultaten.}}",
        "searchprofile-articles": "Artikels",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alles",
        "search-result-size": "$1 ({{PLURAL:$2|1 woord|$2 woorden}})",
        "search-result-category-size": "{{PLURAL:$1|1 kategorielid|$1 kategorielejen}} ({{PLURAL:$2|1 onderkategorie|$2 onderkategorieën}}, {{PLURAL:$3|1 bestaand|$3 bestaanden}})",
        "search-redirect": "(döärverwysing vanaf $1)",
-       "search-section": "(onderwarp $1)",
+       "search-section": "(underwarp $1)",
        "search-file-match": "(kümt oavereyne mid de inhold van et bestand)",
        "search-suggest": "Bedoelden je: $1",
        "search-interwiki-caption": "Resultaten van süsterprojekten",
        "searchrelated": "verwaant",
        "searchall": "alles",
        "showingresults": "Hieronder {{PLURAL:$1|steet '''1''' resultaot|staon '''$1''' resultaoten}}  <b>$1</b> vanaof nummer <b>$2</b>.",
-       "search-showingresults": "{{PLURAL:$4|Resultaot <strong>$1</strong> van <strong>$2</strong>|Resultaoten <strong>$1 - $2</strong> van <strong>$3</strong>}}",
+       "search-showingresults": "{{PLURAL:$4|Resultaat <strong>$1</strong> van <strong>$3</strong>|Resultaten <strong>$1 – $2</strong> van <strong>$3</strong>}}",
        "search-nonefound": "Der binnet geen resultaten vöär de söökupdrachte.",
        "powersearch-legend": "Uutgebreid zeuken",
        "powersearch-ns": "Zeuken in naamruumten:",
        "search-external": "Extern zeuken",
        "searchdisabled": "Zeuken in {{SITENAME}} is niet meugelik. Je kunnen gebruukmaken van Google. De gegevens over {{SITENAME}} bin misschien niet bie-ewörken.",
        "search-error": "Der is wat mis-egaon bie t zeuken: $1",
-       "preferences": "Veurkeuren",
-       "mypreferences": "Myn vöärköären",
+       "preferences": "Instellingen",
+       "mypreferences": "Instellingen",
        "prefs-edits": "Antal bewarkingen:",
        "prefs-skin": "{{SITENAME}}-uterlik",
        "skin-preview": "bekieken",
        "datedefault": "Gien veurkeur",
        "prefs-labs": "Alphafunksies",
        "prefs-user-pages": "Gebrukersziejen",
-       "prefs-personal": "Gebrukersgegevens",
-       "prefs-rc": "Leste wiezigingen",
-       "prefs-watchlist": "Volglieste",
+       "prefs-personal": "Brukersgegeavens",
+       "prefs-rc": "Lätste wysigingen",
+       "prefs-watchlist": "Volglyste",
        "prefs-editwatchlist-label": "Onderwarpen op joew volglieste bewarken:",
        "prefs-editwatchlist-edit": "Onderwarpen op mien volgliesten bekieken en vortdoon",
        "prefs-watchlist-days": "Antal dagen in de volglieste bekieken:",
        "prefs-changeemail": "Netpostadres wiezigen of vorthaolen",
        "prefs-setemail": "Stel n netpostadres in",
        "prefs-email": "Instellingen veur netpost",
-       "prefs-rendering": "Ziedweergave",
-       "saveprefs": "Veurkeuren opslaon",
+       "prefs-rendering": "Uterlik",
+       "saveprefs": "Instellingen seakeren",
        "restoreprefs": "Alle standardinstellingen weerummezetten (veur alle seksies)",
        "prefs-editing": "Bewarkingsveld",
        "searchresultshead": "Zeukresultaoten",
        "recentchangescount": "Standard antal bewarkingen um te laoten zien:",
        "prefs-help-recentchangescount": "Dit geldt veur leste wiezigingen, ziedgeschiedenisse en logboekziejen",
        "prefs-help-watchlist-token2": "Dit is de geheime sleutel veur de webvoer van joew volglieste.\nIederene die t token kent, kan joew volglieste bekieken, dus deel dit token niet.\nJe kunnen de [[Special:ResetTokens|tokens opniej instellen]] a'j dat willen.",
-       "savedprefs": "Veurkeuren bin op-esleugen.",
+       "savedprefs": "Instellingen binnet seakerd.",
        "timezonelegend": "Tiedzone:",
        "localtime": "Plaotselike tied:",
        "timezoneuseserverdefault": "Wikistandard gebruken ($1)",
        "timezoneregion-indian": "Indiese Oseaan",
        "timezoneregion-pacific": "Stille Oseaan",
        "allowemail": "Berichten van aandere gebrukers toestaon",
-       "prefs-searchoptions": "Zeukinstellingen",
+       "prefs-searchoptions": "Söken",
        "prefs-namespaces": "Naamruumtes",
        "default": "standard",
        "prefs-files": "Bestaanden",
        "prefs-emailconfirm-label": "Netpostbevestiging:",
        "youremail": "Netpostadres (niet verplicht) *",
        "username": "{{GENDER:$1|Gebrukersnaam}}:",
-       "prefs-memberingroups": "{{GENDER:$2|Lid}} van {{PLURAL:$1|groep|groepen}}:",
-       "prefs-registration": "Registrasiedaotum:",
+       "prefs-memberingroups": "{{GENDER:$2|Lid}} van {{PLURAL:$1|grup|gruppen}}:",
+       "prefs-registration": "Registratydåtum:",
        "yourrealname": "Echte naam (niet verplicht)",
-       "yourlanguage": "Taal veur systeemteksten",
+       "yourlanguage": "Taal / språke:",
        "yourvariant": "Taalvariaant veur inhoud:",
        "prefs-help-variant": "Joew veurkeursvariaant of -spelling um de inhoudsziejen van disse wiki in weer te geven.",
        "yournick": "Alias veur ondertekeningen",
        "prefs-help-signature": "Reaksies op de overlegziejen mutten ondertekend wörden mit \"<nowiki>~~~~</nowiki>\", dit wörden dan ummezet in joew ondertekening mit daorbie de daotum en tied van de bewarking.",
        "badsig": "Ongeldige haandtekening; HTML naokieken.",
        "badsiglength": "Joew haandtekening is te lang.\nt Mut minder as {{PLURAL:$1|letter|letters}} hebben.",
-       "yourgender": "Geslacht:",
-       "gender-unknown": "De programmatuur gebruukt zoveul meugelik geslachtsneutrale woorden as t over joe geet.",
-       "gender-male": "Keerl",
-       "gender-female": "Deerne",
-       "prefs-help-gender": "Disse instelling is opsioneel.\n\nDe programmatuur gebruukt disse weerde um joe op de juuste maniere an te spreken en veur aandere gebrukers um joew geslacht an te geven.\nDisse informasie is zichtbaor veur aandere gebrukers.",
+       "yourgender": "Ho wil jy beskreaven wörden?",
+       "gender-unknown": "Geslachtsneutrale anspreaksform",
+       "gender-male": "Hee bewarkt syden",
+       "gender-female": "See bewarkt syden",
+       "prefs-help-gender": "Disse instelling is optioneel.\nDe programmatuur bruukt disse waerde um ju up de jüüste manere an te spreaken en vöär andere brukers üm juw geslacht an te geaven.\nDisse informaty is sichtbår vöär andere brukers.",
        "email": "Privéberichten",
        "prefs-help-realname": "Echte naam is keuzevrie.\nA'j disse opsie invullen zu'w joew echte naam gebruken um erkenning te geven veur joew wark.",
        "prefs-help-email": "n Netpostadres is niet verplicht, mer zo ku'w wel joew wachtwoord toesturen veur a'j t vergeten bin.",
        "prefs-help-email-others": "Je kunnen oek aandere meensen de meugelikheid geven um kontakt mit joe op te nemen mit n verwiezing op joew gebrukers- en overlegzied zonder da'j de identiteit pries hoeven te geven.",
        "prefs-help-email-required": "Hier he'w n netpostadres veur neudig.",
-       "prefs-info": "Baosisinformasie",
-       "prefs-i18n": "Taalinstellingen",
+       "prefs-info": "Basisinformaty",
+       "prefs-i18n": "Språkinstellingen",
        "prefs-signature": "Ondertekening",
        "prefs-dateformat": "Daotumopmaak:",
        "prefs-timeoffset": "Tiedsverschil",
        "rclinks": "Bekyk de lätste $1 wysigingen van de vöärbye $2 dagen",
        "diff": "verskil",
        "hist": "geskydenisse",
-       "hide": "verbarg",
-       "show": "bekiek",
+       "hide": "verbargen",
+       "show": "bekyken",
        "minoreditletter": "K",
        "newpageletter": "N",
        "boteditletter": "B",
        "recentchangeslinked": "Soortgelyke wysigingen",
        "recentchangeslinked-feed": "Volg verwysingen",
        "recentchangeslinked-toolbox": "Volg verwysingen",
-       "recentchangeslinked-title": "Wiezigingen verwaant an $1",
+       "recentchangeslinked-title": "Wysigingen verwand an $1",
        "recentchangeslinked-summary": "Voor een sydname in üm bewarkingen te seen up syden wårnå verweasen wördt of dårnå verwysen. (Voor {{ns:category}}:kategoryname in üm leaden van een kategory te seen). Bewarkingen van syden up [[Special:Watchlist|juw volglyste]] binnet <strong>vetdrükked</strong>.",
-       "recentchangeslinked-page": "Ziednaam:",
-       "recentchangeslinked-to": "Bekiek wiezigingen op ziejen mit verwiezingen naor disse zied",
+       "recentchangeslinked-page": "Sydname:",
+       "recentchangeslinked-to": "Bekyk wysigingen up syden dee hyrhinne verwysen",
        "recentchanges-page-added-to-category": "[[:$1]] bie kategorie ezet",
        "recentchanges-page-added-to-category-bundled": "[[:$1]] bie kategorie ezet, [[Special:WhatLinksHere/$1|disse zied zit in aandere ziejen in-esleuten]]",
        "recentchanges-page-removed-from-category": "[[:$1]] is vortedaon uut kategorie",
        "uploadlogpage": "Logboek mit nieje bestaanden",
        "uploadlogpagetext": "Hieronder steet n lieste mit bestaanden die net niej bin.\nZie de [[Special:NewFiles|uutstalling mit media]] veur n overzicht.",
        "filename": "Bestaandsnaam",
-       "filedesc": "Beschrieving",
+       "filedesc": "Beskryving",
        "fileuploadsummary": "Beschrieving:",
        "filereuploadsummary": "Bestaandswiezigingen:",
        "filestatus": "Auteursrechtstaotus",
        "upload-curl-error6-text": "t Webadres kon niet bereikt wörden. Kiek effen nao o'j t goeie adres in-evoerd hebben en of de webstee bereikbaor is.",
        "upload-curl-error28": "Tiedsoverschriejing veur t versturen van t bestaand",
        "upload-curl-error28-text": "t Duren te lange veurdat de webstee reageren. Kiek effen nao of de webstee bereikbaor is, wacht effen en probeer t daornao weer. Probeer t aanders as t wat rustiger is.",
-       "license": "Lisensie",
-       "license-header": "Lisensie",
-       "nolicense": "Gien lisensie ekeuzen",
+       "license": "Licensy",
+       "license-header": "Licensy",
+       "nolicense": "Geen licensy köäsen",
        "license-nopreview": "(Naokieken is niet meugelik)",
        "upload_source_url": " (een geldig, publiek toegankelik webadres)",
        "upload_source_file": " (n bestaand op de hardeschieve)",
        "imagelinks": "Bestandsbruuk",
        "linkstoimage": "Dit bestand wördt up de volgende {{PLURAL:$1|syde|$1 syden}} bruked:",
        "linkstoimage-more": "Meyr as $1 {{PLURAL:$1|syde bruukt|syden bruken}} dit bestand.\nDe volgende lyste givt allinnig de {{PLURAL:$1|eyrste syde|eyrste $1 syden}} weader dee dit bestand bruukt.\nDe [[Special:WhatLinksHere/$2|heyle lyste]] is ouk beskikbår.",
-       "nolinkstoimage": "Geen enkelde syde gebrüükt disse holder.",
+       "nolinkstoimage": "Geen enkele syde bruukt dit bestand.",
        "morelinkstoimage": "[[Special:WhatLinksHere/$1|Meer verwiezingen]] naor dit bestaand bekieken.",
        "linkstoimage-redirect": "$1 (bestaandsdeurverwiezing) $2",
        "duplicatesoffile": "{{PLURAL:$1|t Volgende bestaand is|De volgende $1 bestaanden bin}} gelieke an dit bestaand ([[Special:FileDuplicateSearch/$2|meer informasie]]):",
        "uploadnewversion-linktext": "n Niejere versie van dit bestaand opsturen.",
        "shared-repo-from": "uut $1",
        "shared-repo": "n edeelden mediadatabanke",
-       "upload-disallowed-here": "Je kunnen dit bestaand niet overschrieven.",
+       "upload-disallowed-here": "Jy künnet dit bestand neet oaverskryven.",
        "filerevert": "$1 weerummedreien",
        "filerevert-legend": "Bestaand weerummezetten",
        "filerevert-intro": "Je bin '''[[Media:$1|$1]]''' an t weerummedreien tot de [$4 versie van $2, $3]",
        "suppress": "Toezicht",
        "querypage-disabled": "Disse spesiale zied is uutezet um prestasieredens.",
        "apisandbox": "API-zaandkule",
-       "booksources": "Boekinformasie",
+       "booksources": "Bookinformaty",
        "booksources-search-legend": "Zeuk informasie over n boek",
        "booksources-search": "Zeuken",
        "booksources-text": "Hieronder steet n lieste mit verwiezingen naor aandere websteeën die nieje of wat ouwere boeken verkopen, en daor hebben ze warschienlik meer informasie over t boek da'j zeuken:",
        "usermessage-summary": "Systeemteksten achter-eleuten",
        "usermessage-editor": "Systeemtekste",
        "watchlist": "Volglieste",
-       "mywatchlist": "Myn volglyste",
+       "mywatchlist": "Volglyste",
        "watchlistfor2": "Veur $1 ($2)",
        "nowatchlist": "Gien artikels in volglieste.",
        "watchlistanontext": "$1 is verplicht um joew volglieste te bekieken of te wiezigen.",
        "blanknamespace": "(Höyvdnaamruumde)",
        "contributions": "{{GENDER:$1|Brukersbydragen}}",
        "contributions-title": "Biedragen van $1",
-       "mycontris": "Myn bydragen",
+       "mycontris": "Bydragen",
        "anoncontribs": "Bydragen",
        "contribsub2": "Veur {{GENDER:$3|$1}} ($2)",
        "nocontribs": "Gien wiezigingen evunnen die an de estelde criteria voldoon.",
        "sp-contributions-newonly": "Allinnig nieje ziejen laoten zien",
        "sp-contributions-submit": "Zeuk",
        "whatlinkshere": "Verwysingen hyrhinne",
-       "whatlinkshere-title": "Ziejen die verwiezen naor \"$1\"",
-       "whatlinkshere-page": "Zied:",
-       "linkshere": "Disse ziejen verwiezen naor '''$2''':",
+       "whatlinkshere-title": "Syden dee nå \"$1\" verwyset",
+       "whatlinkshere-page": "Syde:",
+       "linkshere": "De volgende syden verwysen nå <strong>$2</strong>:",
        "nolinkshere": "Gien enkele zied verwis naor '''$2'''.",
        "nolinkshere-ns": "Gien enkele zied verwis naor '''$2''' in de ekeuzen naamruumte.",
-       "isredirect": "deurverwiezing",
-       "istemplate": "in-evoegd as mal",
-       "isimage": "bestaandsverwiezing",
-       "whatlinkshere-prev": "{{PLURAL:$1|veurige|veurige $1}}",
+       "isredirect": "döärverwysing",
+       "istemplate": "invoogd as mal",
+       "isimage": "bestandsverwysing",
+       "whatlinkshere-prev": "{{PLURAL:$1|vöärige|vöärige $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|volgende|volgende $1}}",
-       "whatlinkshere-links": "← verwiezingen",
-       "whatlinkshere-hideredirs": "$1 deurverwiezingen",
-       "whatlinkshere-hidetrans": "Vörlageninbinnungen $1",
-       "whatlinkshere-hidelinks": "Lenken $1",
+       "whatlinkshere-links": "← verwysingen",
+       "whatlinkshere-hideredirs": "$1 döärverwysingen",
+       "whatlinkshere-hidetrans": "$1 invoogde mallen",
+       "whatlinkshere-hidelinks": "$1 verwysingen",
        "whatlinkshere-hideimages": "$1 holderverwysingen",
        "whatlinkshere-filters": "Filters",
        "autoblockid": "Automatiese blokkering #$1",
        "semiprotectedpagemovewarning": "'''Waorschuwing:''' disse zied kan allinnig deur eregistreerden gebrukers herneumd wörden.\nDe leste logboekregel steet hieronder:",
        "move-over-sharedrepo": "== t Bestaand besteet al ==\n[[:$1]] besteet al in de edeelden mediadatabanke. A'j n bestaand naor disse titel herneumen, dan ku'j  t edeelden bestaand niet gebruken.",
        "file-exists-sharedrepo": "Disse bestaandsnaam besteet al in de edeelden mediadatabanke.\nKies n aandere bestaandsnaam.",
-       "export": "Ziejen exporteren",
+       "export": "Syden eksporteren",
        "exporttext": "De tekste en geschiedenisse van n zied of n koppel ziejen kunnen in XML-formaot uutevoerd wörden. Dit bestaand ku'j daornao exporteren naor n aandere MediaWiki deur de [[Special:Import|invoerzied]] te gebruken.\n\nZet in t onderstaonde veld de namen van de ziejen die'j exporteren willen, één zied per regel, en geef an o'j alle versies mit de bewarkingssamenvatting exporteren willen of allinnig de leste versies mit de bewarkingssamenvatting.\n\nA'j dat leste doon willen dan ku'j oek n verwiezing gebruken, bieveurbeeld [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] veur de zied \"[[{{MediaWiki:Mainpage}}]]\".",
        "exportall": "Alle ziejen exporteren",
        "exportcuronly": "Allinnig de actuele versie, niet de veurgeschiedenisse",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} van $2",
        "javascripttest": "JavaScript testen",
        "javascripttest-qunit-intro": "Zie de [$1 testdokumentasie] op mediawiki.org.",
-       "tooltip-pt-userpage": "{{GENDER:|Oew}} gebroekersziede",
+       "tooltip-pt-userpage": "{{GENDER:|Juw}} brukerssyde",
        "tooltip-pt-anonuserpage": "Gebroekersbladziede vuur t IP-adres da'j broekt",
-       "tooltip-pt-mytalk": "{{GENDER:|Oew}} oaverlegziede",
+       "tooltip-pt-mytalk": "{{GENDER:|Juw}} oaverlegsyde",
        "tooltip-pt-anontalk": "Oaverlegbladziede van n naamlozen gebroeker van dit IP-adres",
-       "tooltip-pt-preferences": "{{GENDER:|Miene}} vuurkeuren",
-       "tooltip-pt-watchlist": "Lieste van zieden die op miene volglieste stoan",
-       "tooltip-pt-mycontris": "Oaverzicht van {{GENDER:|oew}} biejdreagen",
+       "tooltip-pt-preferences": "{{GENDER:|Juw}} instellingen",
+       "tooltip-pt-watchlist": "Lyste van syden dee up myn volglyste stån",
+       "tooltip-pt-mycontris": "Oaversicht van {{GENDER:|juw}} bydragen",
        "tooltip-pt-login": "Jy wördet van harte uutnöygd üm ju an te melden as bruker, mär et is neet verplicht",
-       "tooltip-pt-logout": "Ofmaelden",
+       "tooltip-pt-logout": "Afmelden",
        "tooltip-pt-createaccount": "Skryv juw eigen vöäral in en meld juw eigen an. Dit is lykewels neet verplicht.",
        "tooltip-ca-talk": "Låt een oaverlegtekst oaver disse syde seen",
        "tooltip-ca-edit": "Bewark disse syde",
        "tooltip-ca-addsection": "Ny underwarp tovogen",
-       "tooltip-ca-viewsource": "Disse ziede is beveiligd taegen veraanderen. Iej könt wal kieken noar de ziede",
+       "tooltip-ca-viewsource": "Disse syde is beveiligd. \nJy künnet wel de bronkode wel bekyken.",
        "tooltip-ca-history": "Oldere versys van disse syde",
        "tooltip-ca-protect": "Beveilig disse ziede taegen veraanderen",
        "tooltip-ca-unprotect": "De beveiliging vuur disse ziede wiezigen",
        "tooltip-t-recentchangeslinked": "Pas verrichte veranderingen dee nå disse syde verwyset",
        "tooltip-feed-rss": "RSS-voer vuur disse ziede",
        "tooltip-feed-atom": "Atom-voer vuur disse ziede",
-       "tooltip-t-contributions": "Lieste met biejdreagen van {{GENDER:$1|disse gebroeker}}",
+       "tooltip-t-contributions": "Een lyste mid bydragen van {{GENDER:$1|disse bruker}}",
        "tooltip-t-emailuser": "Stüür disse {{GENDER:$1|gebruker}} een netpostbericht",
        "tooltip-t-info": "Meer informasie over disse zied",
        "tooltip-t-upload": "Laad afbealdingen en/of gelüüdsmateriaal",
        "tooltip-t-print": "De afdrükbåre versy van disse syde",
        "tooltip-t-permalink": "Permanente verwysing nå disse versy van de syde",
        "tooltip-ca-nstab-main": "Låt een tekst van et artikel seen",
-       "tooltip-ca-nstab-user": "Loat de gebroekersbladziede zeen",
+       "tooltip-ca-nstab-user": "Brukerssyde bekyken",
        "tooltip-ca-nstab-media": "Loat n mediatekst zeen",
        "tooltip-ca-nstab-special": "Dit is een bysündere syde dee jy neet veranderen künt",
        "tooltip-ca-nstab-project": "Loat de projektbladziede zeen",
        "tooltip-ca-nstab-image": "Låt de bestandssyde seen",
        "tooltip-ca-nstab-mediawiki": "Loat de systeemtekstbladziede zeen",
-       "tooltip-ca-nstab-template": "Loat de malbladziede zeen",
+       "tooltip-ca-nstab-template": "Mal bekyken",
        "tooltip-ca-nstab-help": "Loat de hölpbladziede zeen",
        "tooltip-ca-nstab-category": "Låt de kategorysyde seen",
        "tooltip-minoredit": "Markeer as n klaene wieziging",
-       "tooltip-save": "Wiezigingen opsloan",
-       "tooltip-preview": "Bekiek oew versie vuurda'j t opsloan (anbeveulen)!",
-       "tooltip-diff": "Bekiek oew aegen wiezigingen",
+       "tooltip-save": "Wysigingen seakeren",
+       "tooltip-preview": "Bekyk juw wysigingen. Bruuk dit vöärdat jy seakeret.",
+       "tooltip-diff": "Låt seen welke wysigingen jy in de tekst maked hebbet.",
        "tooltip-compareselectedversions": "Bekiek de verschillen tussen de ekeuzen versies.",
        "tooltip-watch": "Voog disse ziede to an oew volglieste",
        "tooltip-watchlistedit-normal-submit": "Ziejen vortdoon",
        "tooltip-recreate": "Disse ziede opniej anmaken, ondanks t feit dat t vortdoan is.",
        "tooltip-upload": "Bestaanden opsturen",
        "tooltip-rollback": "\"Weaderümmedraien\" drait mid eyn klik de bewarking(en) van de lätste bruker up disse syde terügge.",
-       "tooltip-undo": "A'j op \"weerummedreien\" klikken geet t bewaerkingsvaenster lös en kö'j ne vurige versie terugzetten.\nIej könt in de bewaerkingssamenvatting n reden opgeven.",
+       "tooltip-undo": "As jy up \"weaderümmedraien\" klikket geyt et bewarkingsveld lös en kün jy een vöärige versy weaderümmesetten. Jy künnet in de bewarkingssamenvatting een readen upgeaven.",
        "tooltip-preferences-save": "Vuurkeuren opsloan",
-       "tooltip-summary": "Voer ne korte samenvatting in",
+       "tooltip-summary": "Voor een korte samenvatting in",
        "interlanguage-link-title": "$1 – $2",
        "anonymous": "Anonieme {{PLURAL:$1|gebruker|gebrukers}} van {{SITENAME}}",
        "siteuser": "{{SITENAME}}-gebruker $1",
        "spam_reverting": "Bezig mit t weerummezetten naor de leste versie die gien verwiezing hef naor $1",
        "spam_blanking": "Alle wiezigingen mit n verwiezing naor $1 wörden vortehaold",
        "spam_deleting": "In alle versies staon verwiezingen naor $1. Zied vortedaon",
-       "simpleantispam-label": "Antispamkontraole.\nHier <strong>niks</strong> invullen!",
+       "simpleantispam-label": "Antispamkontrole.\nHyr <strong>niks</strong> invüllen!",
        "pageinfo-title": "Informasie over \"$1\"",
        "pageinfo-not-current": "Disse gegevens bin allinnig beschikbaor veur disse versie.",
-       "pageinfo-header-basic": "Baosisinformasie",
+       "pageinfo-header-basic": "Basisinformaty",
        "pageinfo-header-edits": "Bewarkingsgeschiedenisse",
        "pageinfo-header-restrictions": "Ziedbeveiliging",
        "pageinfo-header-properties": "Ziedeigenschappen",
        "file-info": "Bestaandsgrootte: $1, MIME-type: $2",
        "file-info-size": "$1 × $2 bealdpunten, bestandsgroutde: $3, MIME-type: $4",
        "file-info-size-pages": "$1 × $2 beeldpunten, bestaandsgrootte: $3, MIME-type: $4, $5 {{PLURAL:$5|zied|ziejen}}",
-       "file-nohires": "Gien hogere resolusie beschikbaor.",
-       "svg-long-desc": "SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3",
+       "file-nohires": "Geen hougere resoluty beskikbår.",
+       "svg-long-desc": "SVG-bestand, uutgangsgroutde $1 × $2 bealdpunten, bestandsgroutde: $3",
        "svg-long-desc-animated": "Bewegend SVG-bestaand, uutgangsgrootte $1 × $2 beeldpunten, bestaandsgrootte: $3",
        "svg-long-error": "Ongeldig SVG-bestaand: $1",
        "show-big-image": "Oorsprungelik bestand",
        "version-hook-name": "Hooknaam",
        "version-hook-subscribedby": "In-eschreven deur",
        "version-version": "($1)",
-       "version-license": "MediaWiki-lisensie",
+       "version-license": "MediaWiki-licensy",
        "version-ext-colheader-version": "Versie",
        "version-ext-colheader-license": "Lisensie",
        "version-ext-colheader-description": "Beschrieving",
        "htmlform-no": "Nee",
        "htmlform-yes": "Ja",
        "htmlform-chosen-placeholder": "Kies n opsie",
-       "logentry-delete-delete": "$1 hevt de syde $3 {{GENDER:$2|vordedån}}",
+       "logentry-delete-delete": "$1 hevt de syde $3 {{GENDER:$2|vorddån}}",
        "logentry-delete-restore": "$1 {{GENDER:$2|hevt}} de syde $3 ($4) weaderümmesetted",
        "logentry-delete-event": "$1 hef de zichtbaorheid van {{PLURAL:$5|n logboekregel|$5 logboekregels}} van $3 {{GENDER:$2|ewiezigd}}: $4",
        "logentry-delete-revision": "$1 hef de zichtbaorheid van {{PLURAL:$5|een versie|$5 versies}} van de zied $3 {{GENDER:$2|ewiezigd}}: $4",
index 992e7e1..997db7b 100644 (file)
        "whatlinkshere-next": "{{PLURAL:$1|nächste|nächste $1}}",
        "whatlinkshere-links": "← Lenken",
        "whatlinkshere-hideredirs": "$1 Redirects",
-       "whatlinkshere-hidetrans": "$1 in-evoegden mallen",
-       "whatlinkshere-hidelinks": "$1 verwiezingen",
+       "whatlinkshere-hidetrans": "Vörlageninbinnungen $1",
+       "whatlinkshere-hidelinks": "Lenken $1",
        "whatlinkshere-hideimages": "$1 bestaandsverwiezingen",
        "whatlinkshere-filters": "Filters",
        "autoblockid": "Autoblock #$1",
index b846a3f..59c63b7 100644 (file)
@@ -34,7 +34,7 @@
        "tog-watchrollback": "Aggiunge le pàggene addò agghie fatte 'n'annullamende jndr'à l'elenghe de le pàggene condrollate",
        "tog-minordefault": "Pe convenzione signe tutte le cangiaminde cumme stuédeche",
        "tog-previewontop": "Fa vedè l'andeprime apprime d'a caselle de le cangiaminde",
-       "tog-previewonfirst": "Fà vedè l'andeprime sus a 'u prime cangiamende",
+       "tog-previewonfirst": "Fà 'ndrucà l'andeprime sus a 'u prime cangiamende",
        "tog-enotifwatchlistpages": "Manneme 'na mail quanne 'a pàgene ca stoche a condrolle ha cangiate",
        "tog-enotifusertalkpages": "Manneme 'na mail quanne 'a pàgene de le 'ngazzaminde ha cangiate",
        "tog-enotifminoredits": "Manneme 'na mail quanne onne state fatte cangiaminde stuèdeche sus a le pàggene",
@@ -54,7 +54,7 @@
        "tog-watchlisthidepatrolled": "Scunne le cangiaminde condrollate jndr'à l'elenghe de le pàggene condrollate",
        "tog-watchlisthidecategorization": "Scunne 'a categorizzazzione d'a vôsce",
        "tog-ccmeonemails": "Manneme 'na copie de le mail ca je manne a l'ôtre utinde",
-       "tog-diffonly": "No fà vedè le pàggene cu le condenute sotte a le differenze",
+       "tog-diffonly": "No fà 'ndrucà le pàggene cu le condenute sotte a le differenze",
        "tog-showhiddencats": "Fa vedè le categorije scunnute",
        "tog-norollbackdiff": "Non sce penzanne a le differenze apprisse l'esecuzione de 'nu rollback",
        "tog-useeditwarning": "Avvisave quanne jie lasse 'na pàgene cangiate senze ca agghie sarvate le cangiaminde",
        "viewsourcelink": "vide 'u sorgende",
        "editsectionhint": "Cange 'a sezione: $1",
        "toc": "Condenute",
-       "showtoc": "fà vedè",
+       "showtoc": "fà 'ndrucà",
        "hidetoc": "scunne",
        "collapsible-collapse": "Scunne",
        "collapsible-expand": "Spanne",
        "rev-deleted-diff-view": "Une de le revisiune de sta differenze ha state '''scangellate'''.\nTu puè vedè ste differenze; pò essere ca stonne cchiù 'mbormaziune jndr'à l'[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} archivie de le scangellaminde].",
        "rev-suppressed-diff-view": "Une de le revisiune de sta differenze ha state '''soppresse'''.\nTu puè vedè ste differenze; pò essere ca stonne cchiù 'mbormaziune jndr'à l'[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} archivie de le soppressiune].",
        "rev-delundel": "fa vedè/scunne",
-       "rev-showdeleted": "fà vedè",
+       "rev-showdeleted": "fà 'ndrucà",
        "revisiondelete": "Scangille/Repristine revisiune",
        "revdelete-nooldid-title": "Revisione de destinazione invalida",
        "revdelete-nooldid-text": "Tu non g'è specificate 'na revisione de arrive pe abbilità sta funzione, o a specifica revisione non g'esiste oppure tu stè pruève a scunnè 'a revisiona corrende.",
        "mergehistory-into": "Pàgene de destinazione:",
        "mergehistory-list": "cangiamende d'a storie scuagghiabbele",
        "mergehistory-merge": "Le seguende revisiune de [[:$1]] ponne essere scuagghiate jndr'à [[:$2]].\nAuse 'a coulonne cu le radio buttone pe scacchià de scuagghià le revisiune ccrejate apprime de n'nu certe mumende.\nVide Bbuene ca ausanne le collegaminde de navigazzione sta culonne avène azzerate.",
-       "mergehistory-go": "Fà vedè le cangiaminde ca se ponne squagghià 'nzieme",
+       "mergehistory-go": "Fà 'ndrucà le cangiaminde ca se ponne squagghià 'nzieme",
        "mergehistory-submit": "Scuagghije 'nzieme le revisiune",
        "mergehistory-empty": "Nisciuna revisione pò essere scuagghiate.",
        "mergehistory-done": "$3 {{PLURAL:$3|revisione|revisiune}} de $1 {{PLURAL:$3|ha|onne}} state scuagghiate jndr'à [[:$2]].",
        "difference-multipage": "(Differenze 'mbrà le pàggene)",
        "lineno": "Linea $1:",
        "compareselectedversions": "Combronde le versiune selezionete",
-       "showhideselectedversions": "Fà vedè/scunne le revisiune selezionate",
+       "showhideselectedversions": "Fà 'ndrucà/scunne le revisiune scacchiate",
        "editundo": "annulle",
        "diff-empty": "(Nisciuna differenze)",
        "diff-multi-sameuser": "({{PLURAL:$1|'Na revisione de mmienze|$1 revisiune de mmienze}} da 'u stesse utende non g'avènene fatte vedè)",
        "next-page": "pàgena successive",
        "prevn-title": "Precedende $1 {{PLURAL:$1|resultete|resultete}}",
        "nextn-title": "Successive $1 {{PLURAL:$1|resultete|resultete}}",
-       "shown-title": "Fà vedè le $1 {{PLURAL:$1|resultete|resultete}} pe pàgene",
+       "shown-title": "Fà 'ndrucà le $1 {{PLURAL:$1|resultate}} pe pàgene",
        "viewprevnext": "Vide ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Stè 'na pàgene nnumenete \"[[$1]]\" sus 'a sta Uicchipèdie'''",
        "searchmenu-new": "<strong>[[:$1|Ccreje]] 'a pàgene \"[[:$1|$1]]\" sus 'a sta Uicchipèdie!</strong> 'Ndruche pure {{PLURAL:$2|0=|'a pàgene acchiate cu 'a ricerca toje.|le resultate acchiate da 'a ricerche.}}",
        "prefs-editwatchlist-edit": "'Ndruche e live le titole da l'elenghe de le pàggene condrollate",
        "prefs-editwatchlist-raw": "Cange 'a liste de le pàggene condrollate grezze",
        "prefs-editwatchlist-clear": "Sdevache l'elenghe de le pàggene condrollate tune",
-       "prefs-watchlist-days": "Giurne da fà vedè jndr'à liste de le pàggene condrollete:",
+       "prefs-watchlist-days": "Sciurne da fà 'ndrucà jndr'à l'elenghe de le pàggene condrollate:",
        "prefs-watchlist-days-max": "Massime $1 {{PLURAL:$1|sciurne|sciurne}}",
        "prefs-watchlist-edits": "Numere massime de cangiaminde ca se ponne fa 'ndrucà jndr'à l'lenghe de le pàggene condrollate:",
        "prefs-watchlist-edits-max": "Numere massime: 1000",
        "stub-threshold": "Soglie pe collegamende stub de formattazione ($1):",
        "stub-threshold-sample-link": "esembie",
        "stub-threshold-disabled": "Disabbilitate",
-       "recentchangesdays": "Sciurne da fà vedè jndr'à le cangiaminde recende:",
+       "recentchangesdays": "Sciurne da fà 'ndrucà jndr'à le cangiaminde recende:",
        "recentchangesdays-max": "(massime $1 {{PLURAL:$1|sciurne|sciurne}})",
-       "recentchangescount": "Numere de cangiaminde da fà vedè pe default:",
+       "recentchangescount": "Numere de cangiaminde da fà 'ndrucà pe default:",
        "prefs-help-recentchangescount": "Numere massime: 1000",
        "prefs-help-watchlist-token2": "Queste jè 'a chiave segrete a le feed d'u web de l'elenghe de le pàggene condrollate tune.\nCengate vò ccu canosce ce pò leggere l'elenghe de le pàggene condrollate tune, accussì non g'ù pò condividere.\nCe è abbesogne, [[Special:ResetTokens|'u puè azzerà]].",
        "savedprefs": "Le preferenze tue onne state aggiornete.",
        "yourrealname": "Nome vere:",
        "yourlanguage": "Lènga:",
        "yourvariant": "Variande d'u condenute d'a lènghe:",
-       "prefs-help-variant": "Tu preferisce variande o ortografije da fà vedè le vôsce de sta uicchi.",
+       "prefs-help-variant": "Tu preferisce variande o ortografije da fà 'ndrucà le vôsce de sta uicchi.",
        "yournick": "Firma toje:",
        "prefs-help-signature": "Le commende sus a le pàggene de le 'ngazzaminde avessere a essere sgnate cu \"<nowiki>~~~~</nowiki>\" ca pò avène convertite cu 'a firma toje e l'orarie.",
        "badsig": "'A firme grezze jè sbagliete.\nCondrolle le tag HTML.",
        "prefs-advancedrendering": "Opzione avanzate",
        "prefs-advancedsearchoptions": "Opzione avanzate",
        "prefs-advancedwatchlist": "Opzione avanzate",
-       "prefs-displayrc": "Fà vedè l'opzione",
-       "prefs-displaywatchlist": "Fà vedè l'opzione",
+       "prefs-displayrc": "Fà 'ndrucà l'opzione",
+       "prefs-displaywatchlist": "Fà 'ndrucà l'opzione",
        "prefs-changesrc": "Cangiaminde fatte 'ndrucà",
        "prefs-changeswatchlist": "Cangiaminde fatte 'ndrucà",
        "prefs-pageswatchlist": "Pàggene ca ste condrolle",
        "rcfilters-allcontents-label": "Tutte le condenute",
        "rcfilters-alldiscussions-label": "Tutte le 'ngazzaminde",
        "rcnotefrom": "Sotte {{PLURAL:$5|ste 'u cangiamende|stonne le cangiaminde}} da <strong>$3, $4</strong> ('nzigne a <strong>$1</strong> fatte vedè).",
-       "rclistfrom": "Fà vedè le urteme cangiaminde partenne da $3 $2",
+       "rclistfrom": "Fà 'ndrucà le urteme cangiaminde partenne da $2, $3",
        "rcshowhideminor": "$1 cangiaminde stuèdeche",
-       "rcshowhideminor-show": "Fà vedè",
+       "rcshowhideminor-show": "Fà 'ndrucà",
        "rcshowhideminor-hide": "Scunne",
        "rcshowhidebots": "$1 bot",
-       "rcshowhidebots-show": "Fà vedè",
+       "rcshowhidebots-show": "Fà 'ndrucà",
        "rcshowhidebots-hide": "Scunne",
        "rcshowhideliu": "$1 utinde reggistrate",
-       "rcshowhideliu-show": "Fà vedè",
+       "rcshowhideliu-show": "Fà 'ndrucà",
        "rcshowhideliu-hide": "Scunne",
        "rcshowhideanons": "$1 utende scanusciute",
-       "rcshowhideanons-show": "Fà vedè",
+       "rcshowhideanons-show": "Fà 'ndrucà",
        "rcshowhideanons-hide": "Scunne",
        "rcshowhidepatr": "$1 cangiaminde condrollete",
-       "rcshowhidepatr-show": "Fà vedè",
+       "rcshowhidepatr-show": "Fà 'ndrucà",
        "rcshowhidepatr-hide": "Scunne",
        "rcshowhidemine": "$1 cangiaminde mie",
-       "rcshowhidemine-show": "Fà vedè",
+       "rcshowhidemine-show": "Fà 'ndrucà",
        "rcshowhidemine-hide": "Scunne",
        "rcshowhidecategorization": "$1 categorizzazzione d'a pàgene",
        "rcshowhidecategorization-show": "Fà 'ndrucà",
        "diff": "diff",
        "hist": "cunde",
        "hide": "Scunne",
-       "show": "Fà vedè",
+       "show": "Fà 'ndrucà",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
        "rc-change-size": "$1",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|byte}} apprisse 'u cangiamende",
        "newsectionsummary": "/* $1 */ seziona nove",
-       "rc-enhanced-expand": "Fà vedè le dettaglie",
+       "rc-enhanced-expand": "Fà 'ndrucà le dettaglie",
        "rc-enhanced-hide": "Scunne le dettaglie",
        "rc-old-title": "origgenariamende ccreajate cumme \"$1\"",
        "recentchangeslinked": "Cangiaminde culleghete",
        "pageswithprop-prophidden-long": "valore d'a probbietà d'u teste lunghe scunnute ($1)",
        "pageswithprop-prophidden-binary": "valore probbietà binarie scunnute ($1)",
        "doubleredirects": "Ridirezionaminde a doppie",
-       "doubleredirectstext": "Sta pàgene elenghe le pàggene ca se ridirezionane sus a otre pàggene de ridirezionaminde.\nOgne righe condene 'nu collegamende a 'u prime e a 'u seconde ridirezionamende pe fà vedè addò arrive 'u seconde ridirezionamende, 'u quale jè normalmende 'a pàgena de destinaziona \"rèale\", addò 'u prime ridirezionamende avesse appondà.\nLe situaziune de <del>ingrocie</del> onne state resolte.",
+       "doubleredirectstext": "Sta pàgene elenghe le pàggene ca se ridirezionane sus a otre pàggene de ridirezionaminde.\nOgne righe condene 'nu collegamende a 'u prime e a 'u seconde ridirezionamende pe fà 'ndrucà addò arrive 'u seconde ridirezionamende, 'u quale jè normalmende 'a pàgena de destinaziona \"rèale\", addò 'u prime ridirezionamende avesse appondà.\nLe situaziune de <del>ingrocie</del> onne state resolte.",
        "double-redirect-fixed-move": "[[$1]] ha state spustate.\nAvène aggiornate automaticamende e mò s'avène redirette a [[$2]].",
        "double-redirect-fixed-maintenance": "Aggiuste le doppie redirezionaminde da [[$1]] a [[$2]] jndr'à 'na fatije de manutenzione",
        "double-redirect-fixer": "Correttore de redirezionaminde",
        "withoutinterwiki": "Pàggene senza collegaminde a otre Uicchi",
        "withoutinterwiki-summary": "Le pàggene seguende non ge sonde collegate a nisciuna otra versione de lènghe diverse.",
        "withoutinterwiki-legend": "Prefisse",
-       "withoutinterwiki-submit": "Fà vedè",
+       "withoutinterwiki-submit": "Fà 'ndrucà",
        "fewestrevisions": "Pàggene cu mene cangiaminde",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "ncategories": "$1 {{PLURAL:$1|categorije|categorije}}",
        "protectedtitlesempty": "Nisciune titele jè pe mò prutette cu ste parametre.",
        "protectedtitles-submit": "Fà 'ndrucà le titole",
        "listusers": "Liste de l'utende",
-       "listusers-editsonly": "Fà vedè sulamende l'utinde cu cangiaminde fatte",
+       "listusers-editsonly": "Fà 'ndrucà sulamende l'utinde cu cangiaminde fatte",
        "listusers-temporarygroupsonly": "Fà 'ndrucà sulamende le utinde jndr'à le gruppe de utinde temboranèe",
        "listusers-creationsort": "Arrenghete pe date de ccreazione",
        "listusers-desc": "Arranghe jndr'à 'n'ordine ca scenne",
        "alllogstext": "Visualizzazione combinate de tutte le archivije disponibbele sus a {{SITENAME}}.\nTu puè restringere 'a viste selezionanne 'u tipe de archivije, 'u nome utende (senzibbile a le maiuscole), o le pàggene coinvolte (pure chiste senzibbile a le maiuscole).",
        "logempty": "Non ge stè 'n'anema de priatorie jndr'à l'archivije.",
        "log-title-wildcard": "Cirche le titele ca accumenzene cu stu teste",
-       "showhideselectedlogentries": "Fà vedè/scunne le righe scacchiate de l'archivije",
+       "showhideselectedlogentries": "Fà 'ndrucà/scunne le righe scacchiate de l'archivije",
        "log-edit-tags": "Cange le tag de 'na vôsce de l'archivije scacchiate",
        "checkbox-select": "Scacchie: $1",
        "checkbox-all": "Tutte",
        "allpages": "Tutte le pàggene",
        "nextpage": "Pàgene apprisse ($1)",
        "prevpage": "Pàgene apprime ($1)",
-       "allpagesfrom": "Fà vedè le pàggene partenne da:",
-       "allpagesto": "Fà vedè pàggene ca spiccene 'u:",
+       "allpagesfrom": "Fà 'ndrucà le pàggene partenne da:",
+       "allpagesto": "Fà 'ndrucà pàggene ca spiccene 'u:",
        "allarticles": "Tutte le pàggene",
        "allinnamespace": "Tutte le pàggene (neimspeise $1)",
        "allpagessubmit": "Veje",
        "categories": "Le Categorije",
        "categories-submit": "Fà 'ndrucà",
        "categoriespagetext": "{{PLURAL:$1|'A seguende categorije tène|Le seguende categorije tènene}} pàggene o media.\n'Ndruche pure [[Special:WantedCategories|Categorije cercate]].",
-       "categoriesfrom": "Fà vedè le categorije partenne da:",
+       "categoriesfrom": "Fà 'ndrucà le categorije partenne da:",
        "deletedcontributions": "Condrebbute de l'utende scangellete",
        "deletedcontributions-title": "Condrebbute de l'utende scangellate",
        "sp-deletedcontributions-contribs": "condrebbute",
        "linksearch-text": "Le wildcard cumme a \"*.wikipedia.org\" ponne essere ausate.<br />\nOnne abbesogne almene de 'nu dominie de levèlle ierte, pe esembie \"*.org\". <br />\n{{PLURAL:$2|Protocolle}} supportate: $1 ('u valore de base jè http:// ce 'u protocolle non g'è specificate).",
        "linksearch-line": "$1 jè pundete da $2",
        "linksearch-error": "Le wildcard ponne essere ausate sulamende a l'inzie de l'hostname.",
-       "listusersfrom": "Fà vedè l'utinde partenne da:",
+       "listusersfrom": "Fà 'ndrucà l'utinde partenne da:",
        "listusers-submit": "Fa vedè",
        "listusers-noresult": "Nisciune utende acchiete.",
        "listusers-blocked": "(bloccate)",
        "activeusers": "Liste de l'utinde attive",
        "activeusers-intro": "Queste jè 'n'elenghe de utinde ca avene fatte certe tipe de attività fine a l'urteme $1 {{PLURAL:$1|sciurne|sciurne}}.",
        "activeusers-count": "$1 {{PLURAL:$1|cangiamende|cangiaminde}} jndr'à l'urteme {{PLURAL:$3|sciurne}}",
-       "activeusers-from": "Fà vedè l'utinde partenne da:",
+       "activeusers-from": "Fà 'ndrucà l'utinde partenne da:",
        "activeusers-noresult": "Nisciune utende acchiate.",
        "listgrouprights": "Deritte de le gruppe utinde",
        "listgrouprights-summary": "'A liste ca ste vide ète 'na liste de le gruppe utinde ccreiate sus a sta Uicchi, cu le lore deritte d'accesse associate.\nPonne stà [[{{MediaWiki:Listgrouprights-helppage}}|'mbormaziune de cchiù]] sus a le deritte individuale.",
        "wlshowhidemine": "cangiaminde mie",
        "wlshowhidecategorization": "categorizzazzione d'a pàgene",
        "watchlist-options": "Opzione d'a liste de le pàggene condrollete",
-       "watching": "Fà vedè...",
-       "unwatching": "No fà vedè...",
+       "watching": "Fà 'ndrucà...",
+       "unwatching": "No fà 'ndrucà...",
        "watcherrortext": "'N'errore s'a verificate quanne ste cangiave le 'mbostaziune de le pàggene condrollate pe \"$1\".",
        "enotif_reset": "Signe tutte le pàggene cumme visitete",
        "enotif_impersonal_salutation": "Utende de {{SITENAME}}",
        "undelete-header": "Vide [[Special:Log/delete|l'archivije de le scangellaminde]] pe l'urteme pàggene scangellete.",
        "undelete-search-title": "Cirche le pàggene scangellate",
        "undelete-search-box": "Cirche le pàggene scangellete",
-       "undelete-search-prefix": "Fà vedè le pàggene ca accumenzene cu:",
+       "undelete-search-prefix": "Fà 'ndrucà le pàggene ca accumenzene cu:",
        "undelete-search-submit": "Cirche",
        "undelete-no-results": "Non ge stonne pàggene acchiate jndr'à l'archivije de le scangellaminde.",
        "undelete-filename-mismatch": "Non ge pozze repristinà 'a revisione d'u file cu orarie $1: nome d'u file errate",
        "sp-contributions-search": "Ricerche pe condrebbute",
        "sp-contributions-username": "Indirizze IP o nome de l'utende:",
        "sp-contributions-toponly": "Sulamende facenne vedè le cangiaminde de l'urteme revisiune",
-       "sp-contributions-newonly": "Fà vedè sulamende le cangiaminde ca onne ccrejate 'a pàgene",
+       "sp-contributions-newonly": "Fà 'ndrucà sulamende le cangiaminde ca onne ccrejate 'a pàgene",
        "sp-contributions-hideminor": "Scunne le cangiaminde stuèdeche",
        "sp-contributions-submit": "Cirche",
        "whatlinkshere": "Appondene aqquà",
        "thumbnail_image-type": "Tipe de immaggine non supportate",
        "thumbnail_gd-library": "Configurazione d'a libbrerie GD ingomblete: funziona perse $1",
        "thumbnail_image-missing": "'U file pare ca non ge se iacchie: $1",
-       "thumbnail_image-failure-limit": "Onne state fatte 'nu sacche de tendative ($1 o de cchiù) pe fà vedè sta miniature. Pe piacere pruéve cchiù tarde.",
+       "thumbnail_image-failure-limit": "Onne state fatte 'nu sacche de tendative ($1 o de cchiù) pe fà 'ndrucà sta miniature. Pe piacere pruéve cchiù tarde.",
        "import": "Pàggene 'mbortete",
        "importinterwiki": "'Mborte da 'n'otra uicchi",
        "import-interwiki-text": "Schacchie 'na Uicchi e 'nu titole de pàgene da 'mbortà.\nLe date d'a revisione e 'u nome de le cangiature avènene preservate.\nTutte le aziune de 'mbortaziune 'mbrà le Uicchi sonde reggistrate jndr'à l'[[Special:Log/import|archivije de le 'mbortaziune]].",
        "tooltip-ca-nstab-project": "Vide 'a pàgene d'u proggette",
        "tooltip-ca-nstab-image": "Vide 'a pàgene d'u fail",
        "tooltip-ca-nstab-mediawiki": "Vide le messàgge d'u sisteme",
-       "tooltip-ca-nstab-template": "Fà vedè 'u template",
+       "tooltip-ca-nstab-template": "Fà 'ndrucà 'u template",
        "tooltip-ca-nstab-help": "Vide 'a pàgene d'ajute",
        "tooltip-ca-nstab-category": "Vide a pàgene de le categorije",
        "tooltip-minoredit": "Signe cumme a 'nu cangiaminde stuèdeche",
        "tooltip-save": "Reggistre le cangiaminde ca è fatte",
        "tooltip-publish": "Pubbleche le cangiaminde tune",
        "tooltip-preview": "Fà l'andeprime de le cangiaminde ca ste face. Pe piacere falle prima cu reggistre 'a vôsce!",
-       "tooltip-diff": "Fà vedè ce cangiaminde e fatte a 'u teste.",
+       "tooltip-diff": "Fà 'ndrucà ce cangiaminde e fatte a 'u teste.",
        "tooltip-compareselectedversions": "Vide le differenze 'mbrà le doje versiune selezionete de sta pàgene.",
        "tooltip-watch": "Mitte sta pàgene jndr'à liste de le pàggene condrollete",
        "tooltip-watchlistedit-normal-submit": "Live le titele",
        "pageinfo-header-edits": "Cunde de le cangiaminde",
        "pageinfo-header-restrictions": "Protezione d'a pàgene",
        "pageinfo-header-properties": "Probbietà d'a pàgene",
-       "pageinfo-display-title": "Fà vedè 'u titole",
+       "pageinfo-display-title": "Fà 'ndrucà 'u titole",
        "pageinfo-default-sort": "Chiave de ordenamende de base",
        "pageinfo-length": "Lunghezze d'a pàgene (in byte)",
        "pageinfo-namespace": "Namespace",
        "newimages-legend": "Filtre",
        "newimages-label": "Nome d'u fail (o 'nu stuezze de jidde):",
        "newimages-user": "Indirizze IP o nome de l'utende",
-       "newimages-showbots": "Fà vedè le scarecaminde da bot",
+       "newimages-showbots": "Fà 'ndrucà le scarecaminde da bot",
        "newimages-hidepatrolled": "Scunne le carecaminde condrollate",
        "newimages-mediatype": "Tipe de media:",
        "noimages": "Non ge stè ninde da vedè.",
        "watchlistedit-clear-submit": "Sdevache l'elenghe de le pàggene condrollate (Quiste jè permanende)",
        "watchlistedit-clear-done": "L'elenghe de le pàggene condrollate ha state sdevacate.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 titole ha state|$1 titole onne state}} luate:",
-       "watchlistedit-too-many": "Stonne troppe pàggene da fà vedè aqquà.",
+       "watchlistedit-too-many": "Stonne troppe pàggene da fà 'ndrucà aqquà.",
        "watchlisttools-clear": "Sdevache l'elenghe de le pàggene condrollate",
        "watchlisttools-view": "Vide le cangiaminde 'mbortande",
        "watchlisttools-edit": "Vide e cange le pàggene condrollete",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Live le commende",
        "expand_templates_remove_nowiki": "No fà vede le tag <nowiki> jndr'à 'u resultate",
-       "expand_templates_generate_xml": "Fà vedè l'arvule de l'analisi XML",
-       "expand_templates_generate_rawhtml": "Fà vedè l'HTML grezze",
+       "expand_templates_generate_xml": "Fà 'ndrucà l'arvule de l'analisi XML",
+       "expand_templates_generate_rawhtml": "Fà 'ndrucà  l'HTML grezze",
        "expand_templates_preview": "Andeprime",
        "expand_templates_preview_fail_html": "<em>Purcé {{SITENAME}} téne abbilitate l'HTML grezze e stavane 'nu sbuénne de date de sessione perdute, l'andeprime avène scunnute pe precauzione condre a attacche JavaScript.</em>\n\n<strong>Ce quiste jè 'nu tendative de andeprime leggittime, pe piacere pruéve arrete.</strong>\nCe angore non ge funzione, pruéve a [[Special:UserLogout|assè]] e trasè arrete e verifiche ca 'u browser tune face ausà le cookie da stu site.",
        "expand_templates_preview_fail_html_anon": "<em>Purcé {{SITENAME}} téne abbilitate l'HTML grezze e tu non g'è trasute, l'andeprime avène scunnute pe precauzione condre a attacche JavaScript.</em>\n\n<strong>Ce quiste jè 'nu tendative de andeprime leggittime, [[Special:UserLogin|tràse]] e pruéve arrete.</strong>",
index e1f585c..af8170c 100644 (file)
        "userinvalidconfigtitle": "'''Varning:''' Utseendet \"$1\" finns inte. Kom ihåg att .css-, .json- och .js-sidor för enskilda användare börjar på liten bokstav. Exempel: {{ns:user}}:Foo/vector.css i stället för {{ns:user}}:Foo/Vector.css.",
        "updated": "(Uppdaterad)",
        "note": "'''Obs!'''",
-       "previewnote": "'''Kom ihåg att detta bara är en förhandsvisning.'''\nDina ändringar har ännu inte sparats!",
+       "previewnote": "<strong>Kom ihåg att detta bara är en förhandsgranskning.</strong>\nDina ändringar har ännu inte sparats!",
        "continue-editing": "Fortsätt redigera",
        "previewconflict": "Den här förhandsvisningen är resultatet av den\nredigerbara texten ovanför,\nså som det kommer att se ut om du väljer att spara.",
        "session_fail_preview": "Vi kunde inte behandla din redigering eftersom sessionsdata gått förlorad.\nDu kanske har loggats ut. Var god se till att du fortfarande är inloggad och försök igen.\nOm det fortfarande inte fungerar, prova att [[Special:UserLogout|logga ut]] och logga in igen, samt kontrollera att din webbläsare tillåter kakor från denna webbplats.",
index 9c00f4f..5d75381 100644 (file)
        "tog-useeditwarning": "当我离开编辑页面时,如果有尚未保存的更改,请提醒我",
        "tog-prefershttps": "在登录后总是使用安全连接",
        "tog-showrollbackconfirmation": "当点击回退链接时显示确认提示",
+       "tog-requireemail": "需要电子邮件用于重置密码",
        "underline-always": "始终",
        "underline-never": "从不",
        "underline-default": "皮肤或浏览器默认设置",
        "createaccountmail": "使用一个临时的随机密码并将其发送到指定的电子邮件地址中",
        "createaccountmail-help": "可被用于为另一个人创建账户而不需要得知密码。",
        "createacct-realname": "真实姓名(可选)",
-       "createacct-reason": "原因",
+       "createacct-reason": "原因(公开记录)",
        "createacct-reason-ph": "您为什么要创建另一个账户",
        "createacct-reason-help": "在账户创建日志中显示的消息",
        "createacct-submit": "创建您的账户",
        "content-model-css": "CSS",
        "content-json-empty-object": "空的对象",
        "content-json-empty-array": "空的数组",
+       "unsupported-content-model": "<strong>警告:</strong>内容模型$1在此wiki上不支持。",
        "deprecated-self-close-category": "使用无效自封闭HTML标签的页面",
        "deprecated-self-close-category-desc": "页面包含无效的自封闭HTML标签,例如<code>&lt;b/></code>或<code>&lt;span/></code>。这些标签的行为将很快被更改以与HTML5规格相一致,所以它们在wiki文本中的使用已弃用。",
        "duplicate-args-warning": "<strong>警告:</strong>[[:$1]]正在调用超过一个[[:$2]]中“$3”参数的值。只有最后提供的值会被使用。",
        "listfiles-userdoesnotexist": "用户帐户“$1”未注册。",
        "imgfile": "文件",
        "listfiles": "文件列表",
+       "listfiles_subpage": "由$1上传",
        "listfiles_thumb": "缩略图",
        "listfiles_date": "日期",
        "listfiles_name": "名称",
index 2bce867..49b362f 100644 (file)
        "nouserspecified": "您必須指定一個使用者名稱。",
        "login-userblocked": "這位使用者已被封鎖,不允許登入。",
        "wrongpassword": "您輸入的使用者名稱或密碼錯誤,請再試一次。",
-       "wrongpasswordempty": "輸入的密碼是空的。\n請再試一次。",
+       "wrongpasswordempty": "輸入的密碼是空的。請再試一次。",
        "passwordtooshort": "您的密碼至少需要 $1 個字元。",
        "passwordtoolong": "密碼不能超過 {{PLURAL:$1|1 個字元|$1 個字元}}。",
        "passwordtoopopular": "不能使用普遍選擇的密碼。請選擇更難猜出的密碼",
        "move-watch": "監視來源以及目標頁面",
        "movepagebtn": "移動頁面",
        "pagemovedsub": "已成功移動",
-       "cannotmove": "ç\84¡æ³\95移é\99¤é \81é\9d¢ï¼\8cå\87ºæ\96¼ä»¥ä¸\8b{{PLURAL:$1|å\8e\9få\9b |å\8e\9få\9b }}:",
+       "cannotmove": "ç\94±æ\96¼ä»¥ä¸\8b{{PLURAL:$1|å\8e\9få\9b }}ä¸\8dè\83½ç§»å\8b\95é \81é\9d¢:",
        "movepage-moved": "<strong>已移動 \"$1\" 至 \"$2\"</strong>",
        "movepage-moved-redirect": "已建立重新導向頁面。",
        "movepage-moved-noredirect": "已取消建立重新導向頁面。",
index ac89616..23e86f7 100644 (file)
@@ -125,12 +125,6 @@ li,
        }
 }
 
-fieldset.mw-collapsible .mw-collapsible-toggle {
-       position: absolute;
-       right: 0;
-       z-index: 1;
-}
-
 // special treatment for list items to match above
 // !important necessary to override overly-specific float left and right above.
 ol.mw-collapsible:not( @{exclude} ):before,
index b6aa5fd..2bf685e 100644 (file)
@@ -4,57 +4,58 @@
  * @class mw.errorLogger
  * @singleton
  */
-( function () {
-       'use strict';
+mw.errorLogger = {
+       /**
+        * Fired via mw.track when an error is not handled by local code and is caught by the
+        * window.onerror handler.
+        *
+        * @event global_error
+        * @param {string} errorMessage Error errorMessage.
+        * @param {string} url URL where error was raised.
+        * @param {number} lineNumber Line number where error was raised.
+        * @param {number} [columnNumber] Line number where error was raised. Not all browsers
+        *   support this.
+        * @param {Error|Mixed} [errorObject] The error object. Typically an instance of Error, but anything
+        *   (even a primitive value) passed to a throw clause will end up here.
+        */
 
-       mw.errorLogger = {
-               /**
-                * Fired via mw.track when an error is not handled by local code and is caught by the
-                * window.onerror handler.
-                *
-                * @event global_error
-                * @param {string} errorMessage Error errorMessage.
-                * @param {string} url URL where error was raised.
-                * @param {number} lineNumber Line number where error was raised.
-                * @param {number} [columnNumber] Line number where error was raised. Not all browsers
-                *   support this.
-                * @param {Error|Mixed} [errorObject] The error object. Typically an instance of Error, but anything
-                *   (even a primitive value) passed to a throw clause will end up here.
-                */
+       /**
+        * Install a window.onerror handler that will report via mw.track, while preserving
+        * any previous handler.
+        *
+        * @param {Object} window
+        */
+       installGlobalHandler: function ( window ) {
+               // We will preserve the return value of the previous handler. window.onerror works the
+               // opposite way than normal event handlers (returning true will prevent the default
+               // action, returning false will let the browser handle the error normally, by e.g.
+               // logging to the console), so our fallback old handler needs to return false.
+               var oldHandler = window.onerror || function () {
+                       return false;
+               };
 
                /**
-                * Install a window.onerror handler that will report via mw.track, while preserving
-                * any previous handler.
+                * Dumb window.onerror handler which forwards the errors via mw.track.
                 *
-                * @param {Object} window
+                * @param {string} errorMessage
+                * @param {string} url
+                * @param {number} lineNumber
+                * @param {number} [columnNumber]
+                * @param {Error|Mixed} [errorObject]
+                * @return {boolean} True to prevent the default action
+                * @fires global_error
                 */
-               installGlobalHandler: function ( window ) {
-                       // We will preserve the return value of the previous handler. window.onerror works the
-                       // opposite way than normal event handlers (returning true will prevent the default
-                       // action, returning false will let the browser handle the error normally, by e.g.
-                       // logging to the console), so our fallback old handler needs to return false.
-                       var oldHandler = window.onerror || function () {
-                               return false;
-                       };
-
-                       /**
-                        * Dumb window.onerror handler which forwards the errors via mw.track.
-                        *
-                        * @param {string} errorMessage
-                        * @param {string} url
-                        * @param {number} lineNumber
-                        * @param {number} [columnNumber]
-                        * @param {Error|Mixed} [errorObject]
-                        * @return {boolean} True to prevent the default action
-                        * @fires global_error
-                        */
-                       window.onerror = function ( errorMessage, url, lineNumber, columnNumber, errorObject ) {
-                               mw.track( 'global.error', { errorMessage: errorMessage, url: url,
-                                       lineNumber: lineNumber, columnNumber: columnNumber, errorObject: errorObject } );
-                               return oldHandler.apply( this, arguments );
-                       };
-               }
-       };
+               window.onerror = function ( errorMessage, url, lineNumber, columnNumber, errorObject ) {
+                       mw.track( 'global.error', {
+                               errorMessage: errorMessage,
+                               url: url,
+                               lineNumber: lineNumber,
+                               columnNumber: columnNumber,
+                               errorObject: errorObject
+                       } );
+                       return oldHandler.apply( this, arguments );
+               };
+       }
+};
 
-       mw.errorLogger.installGlobalHandler( window );
-}() );
+mw.errorLogger.installGlobalHandler( window );
index 470d826..22dc924 100644 (file)
@@ -6,6 +6,7 @@
 @ooui-font-size-browser: 16; // assumed browser default of `16px`
 @ooui-font-size-base: 0.875em; // equals `14px` at browser default of `16px`
 
+@ooui-spacing-small: 8 / @ooui-font-size-browser / @ooui-font-size-base; // equals `0.57142857em`≈`8px`
 @ooui-spacing-medium: 12 / @ooui-font-size-browser / @ooui-font-size-base; // equals `0.8571429em`≈`12px`
 @ooui-spacing-large: 16 / @ooui-font-size-browser / @ooui-font-size-base; // equals `1.1428571em`≈`16px`
 @ooui-padding-horizontal: 12 / @ooui-font-size-browser / @ooui-font-size-base;
        // Reducing `padding-top`, as the heading's `line-height` provides similar distance.
        padding: @ooui-spacing-medium @ooui-spacing-large @ooui-spacing-large;
 
-       // Trigger only when collapsible & JS is available via `.mw-collapsed`.
-       .client-js & .oo-ui-fieldsetLayout.mw-collapsed .oo-ui-fieldsetLayout-header {
-               // Negative margin to match the reduced distance on the top caused by the previous rule.
-               margin-bottom: -( @ooui-spacing-large - @ooui-spacing-medium );
+       .client-js & .oo-ui-fieldsetLayout.mw-collapsible .oo-ui-fieldsetLayout-header {
+               // Push legend up when JS is on, to increase clickable area.
+               margin-top: -@ooui-spacing-small;
+               margin-bottom: @ooui-spacing-small;
+               // Add `padding-top` to make up for negative `margin` above.
+               padding: @ooui-spacing-small;
+               // Make space for toggle icon defined below.
+               padding-left: 24 / @ooui-font-size-browser / @ooui-font-size-base;
 
                .oo-ui-labelElement-label {
                        margin-bottom: 0;
                }
        }
+
+       // Trigger only when collapsible & JS is available via `.mw-collapsed`.
+       .client-js & .oo-ui-fieldsetLayout.mw-collapsed .oo-ui-fieldsetLayout-header {
+               min-height: 30px;
+               // Negative margin to match the reduced distance on the top caused by the previous rule.
+               margin-bottom: -@ooui-spacing-medium;
+       }
 }
 
 .mw-htmlform-ooui {
 .mw-htmlform-ooui .mw-htmlform-submit-buttons {
        margin-top: @ooui-spacing-medium;
 }
+
+.oo-ui-fieldsetLayout.mw-collapsible {
+       .oo-ui-fieldsetLayout-header {
+               max-width: none;
+       }
+
+       .mw-collapsible-toggle .oo-ui-iconElement-icon {
+               position: absolute;
+               top: 0;
+               left: 0;
+               // Special case: Reduce to `16px` icon size here.
+               min-width: 16px;
+               width: 16 / @ooui-font-size-browser / @ooui-font-size-base;
+               margin-right: 0.5em;
+       }
+
+       // When expanded: only 'collapse' icon visible
+       .mw-collapsible-toggle .oo-ui-icon-expand {
+               display: none;
+       }
+
+       // When collapsed: only 'expand' icon visible
+       &.mw-collapsed {
+               .mw-collapsible-toggle .oo-ui-icon-expand {
+                       display: inline-block;
+               }
+
+               .mw-collapsible-toggle .oo-ui-icon-collapse {
+                       display: none;
+               }
+       }
+}
index dff7881..9559d3a 100644 (file)
        font-weight: bold;
 }
 
+// on smaller screen, set .watchlistDetail to full width
+// so that the spinner doesn't appear beside it. T225127#5518870
+@media screen and ( max-width: @width-breakpoint-tablet ) {
+       .client-js {
+               /* stylelint-disable-next-line selector-class-pattern */
+               .watchlistDetails {
+                       float: none;
+                       width: auto;
+               }
+       }
+}
+
 @-webkit-keyframes rcfiltersBouncedelay {
        // 50% equals 800ms
        0%,
index 52f7ff2..75da5dd 100644 (file)
                border-top: 2px solid @colorGray14;
        }
 }
+
+// On small screens, remove the table properties from the
+// top section. T225127#5518870
+@media screen and ( max-width: @width-breakpoint-tablet ) {
+       .mw-rcfilters-ui-watchlistTopSectionWidget {
+               .mw-rcfilters-ui-table,
+               .mw-rcfilters-ui-row,
+               .mw-rcfilters-ui-cell {
+                       display: block;
+               }
+
+               &-editWatchlistButton {
+                       margin-top: 1em;
+               }
+       }
+}
index 0eb1134..89de155 100644 (file)
@@ -73,7 +73,7 @@
 
                // Highlight matching parts of link suggestion
                if ( config.query ) {
-                       this.setHighlightedQuery( config.data, config.query, config.compare );
+                       this.setHighlightedQuery( config.data, config.query, config.compare, true );
                }
                this.$label.attr( 'title', config.data );
 
index 21d95df..f814d89 100644 (file)
@@ -13,7 +13,7 @@
        'use strict';
 
        var mw, StringSet, log,
-               hasOwn = Object.prototype.hasOwnProperty;
+               hasOwn = Object.hasOwnProperty;
 
        /**
         * FNV132 hash function
                                        try {
                                                sortDependencies( modules[ i ], resolved );
                                        } catch ( err ) {
-                                               // This module is unknown or has unknown dependencies.
-                                               // Undo any incomplete resolutions made and keep going.
+                                               // This module is not currently known, or has invalid dependencies.
+                                               // Most likely due to a cached reference after the module was
+                                               // removed, otherwise made redundant, or omitted from the registry
+                                               // by the ResourceLoader "target" system.
                                                resolved = saved;
-                                               mw.trackError( 'resourceloader.exception', {
-                                                       exception: err,
-                                                       source: 'resolve'
-                                               } );
+                                               mw.log.warn( 'Skipped unresolvable module ' + modules[ i ] );
+                                               if ( modules[ i ] in registry ) {
+                                                       // If the module was known but had unknown or circular dependencies,
+                                                       // also track it as an error.
+                                                       mw.trackError( 'resourceloader.exception', {
+                                                               exception: err,
+                                                               source: 'resolve'
+                                                       } );
+                                               }
                                        }
                                }
                                return resolved;
index afb4737..2787f58 100644 (file)
@@ -1,54 +1,51 @@
 /* global mw */
-( function () {
-       var maxBusy = 50;
+mw.requestIdleCallbackInternal = function ( callback ) {
+       setTimeout( function () {
+               var start = mw.now();
+               callback( {
+                       didTimeout: false,
+                       timeRemaining: function () {
+                               // Hard a target maximum busy time of 50 milliseconds
+                               return Math.max( 0, 50 - ( mw.now() - start ) );
+                       }
+               } );
+       }, 1 );
+};
 
-       mw.requestIdleCallbackInternal = function ( callback ) {
-               setTimeout( function () {
-                       var start = mw.now();
-                       callback( {
-                               didTimeout: false,
-                               timeRemaining: function () {
-                                       return Math.max( 0, maxBusy - ( mw.now() - start ) );
-                               }
-                       } );
-               }, 1 );
-       };
-
-       /**
-        * Schedule a deferred task to run in the background.
-        *
-        * This allows code to perform tasks in the main thread without impacting
-        * time-critical operations such as animations and response to input events.
-        *
-        * Basic logic is as follows:
-        *
-        * - User input event should be acknowledged within 100ms per [RAIL].
-        * - Idle work should be grouped in blocks of upto 50ms so that enough time
-        *   remains for the event handler to execute and any rendering to take place.
-        * - Whenever a native event happens (e.g. user input), the deadline for any
-        *   running idle callback drops to 0.
-        * - As long as the deadline is non-zero, other callbacks pending may be
-        *   executed in the same idle period.
-        *
-        * See also:
-        *
-        * - <https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback>
-        * - <https://w3c.github.io/requestidlecallback/>
-        * - <https://developers.google.com/web/updates/2015/08/using-requestidlecallback>
-        * [RAIL]: https://developers.google.com/web/fundamentals/performance/rail
-        *
-        * @member mw
-        * @param {Function} callback
-        * @param {Object} [options]
-        * @param {number} [options.timeout] If set, the callback will be scheduled for
-        *  immediate execution after this amount of time (in milliseconds) if it didn't run
-        *  by that time.
-        */
-       mw.requestIdleCallback = window.requestIdleCallback ?
-               // Bind because it throws TypeError if context is not window
-               window.requestIdleCallback.bind( window ) :
-               mw.requestIdleCallbackInternal;
-       // Note: Polyfill was previously disabled due to
-       // https://bugs.chromium.org/p/chromium/issues/detail?id=647870
-       // See also <http://codepen.io/Krinkle/full/XNGEvv>
-}() );
+/**
+ * Schedule a deferred task to run in the background.
+ *
+ * This allows code to perform tasks in the main thread without impacting
+ * time-critical operations such as animations and response to input events.
+ *
+ * Basic logic is as follows:
+ *
+ * - User input event should be acknowledged within 100ms per [RAIL].
+ * - Idle work should be grouped in blocks of upto 50ms so that enough time
+ *   remains for the event handler to execute and any rendering to take place.
+ * - Whenever a native event happens (e.g. user input), the deadline for any
+ *   running idle callback drops to 0.
+ * - As long as the deadline is non-zero, other callbacks pending may be
+ *   executed in the same idle period.
+ *
+ * See also:
+ *
+ * - <https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback>
+ * - <https://w3c.github.io/requestidlecallback/>
+ * - <https://developers.google.com/web/updates/2015/08/using-requestidlecallback>
+ * [RAIL]: https://developers.google.com/web/fundamentals/performance/rail
+ *
+ * @member mw
+ * @param {Function} callback
+ * @param {Object} [options]
+ * @param {number} [options.timeout] If set, the callback will be scheduled for
+ *  immediate execution after this amount of time (in milliseconds) if it didn't run
+ *  by that time.
+ */
+mw.requestIdleCallback = window.requestIdleCallback ?
+       // Bind because it throws TypeError if context is not window
+       window.requestIdleCallback.bind( window ) :
+       mw.requestIdleCallbackInternal;
+// Note: Polyfill was previously disabled due to
+// https://bugs.chromium.org/p/chromium/issues/detail?id=647870
+// See also <http://codepen.io/Krinkle/full/XNGEvv>
index 4c6e7c9..16c3183 100644 (file)
                        [ 'test.load.circleB', '0', [ 'test.load.circleC' ] ],
                        [ 'test.load.circleC', '0', [ 'test.load.circleA' ] ]
                ] );
-               this.sandbox.stub( mw, 'track', function ( topic, data ) {
+               this.sandbox.stub( mw, 'trackError', function ( topic, data ) {
                        capture.push( {
                                topic: topic,
                                error: data.exception && data.exception.message,
                mw.loader.register( [
                        [ 'test.load.circleDirect', '0', [ 'test.load.circleDirect' ] ]
                ] );
-               this.sandbox.stub( mw, 'track', function ( topic, data ) {
+               this.sandbox.stub( mw, 'trackError', function ( topic, data ) {
                        capture.push( {
                                topic: topic,
                                error: data.exception && data.exception.message,
 
        QUnit.test( '.load() - Error: Unregistered', function ( assert ) {
                var capture = [];
-               this.sandbox.stub( mw, 'track', function ( topic, data ) {
-                       capture.push( {
-                               topic: topic,
-                               error: data.exception && data.exception.message,
-                               source: data.source
-                       } );
+               this.sandbox.stub( mw.log, 'warn', function ( str ) {
+                       capture.push( str );
                } );
 
                mw.loader.load( 'test.load.unreg' );
-               assert.deepEqual(
-                       [ {
-                               topic: 'resourceloader.exception',
-                               error: 'Unknown module: test.load.unreg',
-                               source: 'resolve'
-                       } ],
-                       capture
-               );
+               assert.deepEqual( capture, [ 'Skipped unresolvable module test.load.unreg' ] );
        } );
 
        // Regression test for T36853
        QUnit.test( '.load() - Error: Missing dependency', function ( assert ) {
                var capture = [];
-               this.sandbox.stub( mw, 'track', function ( topic, data ) {
+               this.sandbox.stub( mw, 'trackError', function ( topic, data ) {
                        capture.push( {
                                topic: topic,
                                error: data.exception && data.exception.message,
                this.useStubClock();
 
                // Don't actually emit an error event
-               this.sandbox.stub( mw, 'track' );
+               this.sandbox.stub( mw, 'trackError' );
 
                mw.loader.register( [
                        [ 'test.module1', '0' ],
                }, {}, {} );
                this.tick();
 
-               assert.strictEqual( mw.loader.getState( 'test.module1' ), 'error', 'Expected "error" state for test.module1' );
-               assert.strictEqual( mw.loader.getState( 'test.module2' ), 'error', 'Expected "error" state for test.module2' );
-               assert.strictEqual( mw.loader.getState( 'test.module3' ), 'error', 'Expected "error" state for test.module3' );
+               assert.strictEqual( mw.loader.getState( 'test.module1' ), 'error', 'State of test.module1' );
+               assert.strictEqual( mw.loader.getState( 'test.module2' ), 'error', 'State of test.module2' );
+               assert.strictEqual( mw.loader.getState( 'test.module3' ), 'error', 'State of test.module3' );
 
-               assert.strictEqual( mw.track.callCount, 1 );
+               assert.strictEqual( mw.trackError.callCount, 1 );
        } );
 
        QUnit.test( 'Out-of-order implementation', function ( assert ) {
 
                mw.loader.implement( 'test.module4', function () {} );
                this.tick();
-               assert.strictEqual( mw.loader.getState( 'test.module4' ), 'ready', 'Expected "ready" state for test.module4' );
-               assert.strictEqual( mw.loader.getState( 'test.module5' ), 'registered', 'Expected "registered" state for test.module5' );
-               assert.strictEqual( mw.loader.getState( 'test.module6' ), 'registered', 'Expected "registered" state for test.module6' );
+               assert.strictEqual( mw.loader.getState( 'test.module4' ), 'ready', 'State of test.module4' );
+               assert.strictEqual( mw.loader.getState( 'test.module5' ), 'registered', 'State of test.module5' );
+               assert.strictEqual( mw.loader.getState( 'test.module6' ), 'registered', 'State of test.module6' );
 
                mw.loader.implement( 'test.module6', function () {} );
                this.tick();
-               assert.strictEqual( mw.loader.getState( 'test.module4' ), 'ready', 'Expected "ready" state for test.module4' );
-               assert.strictEqual( mw.loader.getState( 'test.module5' ), 'registered', 'Expected "registered" state for test.module5' );
-               assert.strictEqual( mw.loader.getState( 'test.module6' ), 'loaded', 'Expected "loaded" state for test.module6' );
+               assert.strictEqual( mw.loader.getState( 'test.module4' ), 'ready', 'State of test.module4' );
+               assert.strictEqual( mw.loader.getState( 'test.module5' ), 'registered', 'State of test.module5' );
+               assert.strictEqual( mw.loader.getState( 'test.module6' ), 'loaded', 'State of test.module6' );
 
                mw.loader.implement( 'test.module5', function () {} );
                this.tick();
-               assert.strictEqual( mw.loader.getState( 'test.module4' ), 'ready', 'Expected "ready" state for test.module4' );
-               assert.strictEqual( mw.loader.getState( 'test.module5' ), 'ready', 'Expected "ready" state for test.module5' );
-               assert.strictEqual( mw.loader.getState( 'test.module6' ), 'ready', 'Expected "ready" state for test.module6' );
+               assert.strictEqual( mw.loader.getState( 'test.module4' ), 'ready', 'State of test.module4' );
+               assert.strictEqual( mw.loader.getState( 'test.module5' ), 'ready', 'State of test.module5' );
+               assert.strictEqual( mw.loader.getState( 'test.module6' ), 'ready', 'State of test.module6' );
        } );
 
        QUnit.test( 'Missing dependency', function ( assert ) {