Merge "Password Expiration"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 21 Feb 2014 20:28:30 +0000 (20:28 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 21 Feb 2014 20:28:30 +0000 (20:28 +0000)
20 files changed:
includes/User.php
includes/upload/UploadStash.php
languages/messages/MessagesAst.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesCe.php
languages/messages/MessagesEo.php
languages/messages/MessagesEu.php
languages/messages/MessagesFi.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKsh.php
languages/messages/MessagesMk.php
languages/messages/MessagesPms.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRo.php
languages/messages/MessagesRu.php
languages/messages/MessagesSco.php
languages/messages/MessagesSv.php
languages/messages/MessagesZh_hans.php
tests/parser/parserTest.inc

index 9401b37..4b57dd2 100644 (file)
@@ -257,14 +257,14 @@ class User {
         * @see newFromSession()
         * @see newFromRow()
         */
-       function __construct() {
+       public function __construct() {
                $this->clearInstanceCache( 'defaults' );
        }
 
        /**
         * @return string
         */
-       function __toString() {
+       public function __toString() {
                return $this->getName();
        }
 
@@ -1698,7 +1698,7 @@ class User {
         * @param bool $bFromSlave whether to check the slave database instead of the master
         * @return bool
         */
-       function isBlockedFrom( $title, $bFromSlave = false ) {
+       public function isBlockedFrom( $title, $bFromSlave = false ) {
                global $wgBlockAllowsUTEdit;
                wfProfileIn( __METHOD__ );
 
@@ -3631,7 +3631,7 @@ class User {
         * Get whether the user is allowed to create an account.
         * @return bool
         */
-       function isAllowedToCreateAccount() {
+       public function isAllowedToCreateAccount() {
                return $this->isAllowed( 'createaccount' ) && !$this->isBlockedFromCreateAccount();
        }
 
@@ -3959,7 +3959,7 @@ class User {
         * @note Call saveSettings() after calling this function to commit the change.
         * @return bool Returns true
         */
-       function invalidateEmail() {
+       public function invalidateEmail() {
                $this->load();
                $this->mEmailToken = null;
                $this->mEmailTokenExpires = null;
@@ -3972,7 +3972,7 @@ class User {
         * Set the e-mail authentication timestamp.
         * @param string $timestamp TS_MW timestamp
         */
-       function setEmailAuthenticationTimestamp( $timestamp ) {
+       public function setEmailAuthenticationTimestamp( $timestamp ) {
                $this->load();
                $this->mEmailAuthenticated = $timestamp;
                wfRunHooks( 'UserSetEmailAuthenticationTimestamp', array( $this, &$this->mEmailAuthenticated ) );
index ea11737..f50eb49 100644 (file)
@@ -483,6 +483,7 @@ class UploadStash {
                }
 
                $this->fileMetadata[$key] = (array)$row;
+               $this->fileMetadata[$key]['us_props'] = $dbr->decodeBlob( $row->us_props );
 
                return true;
        }
index 23291de..fd3fff6 100644 (file)
@@ -238,7 +238,7 @@ $messages = array(
 
 'navigation-heading' => 'Menú de navegación',
 'errorpagetitle' => 'Error',
-'returnto' => 'Tornar a $1.',
+'returnto' => 'Volver a $1.',
 'tagline' => 'De {{SITENAME}}',
 'help' => 'Ayuda',
 'search' => 'Buscar',
@@ -287,7 +287,7 @@ $messages = array(
 'otherlanguages' => "N'otres llingües",
 'redirectedfrom' => '(Redirixío dende $1)',
 'redirectpagesub' => 'Páxina de redireición',
-'lastmodifiedat' => "Esta páxina camudóse la postrera vegada'l $1 a les $2.",
+'lastmodifiedat' => "L'últimu cambiu d'esta páxina foi el $1, a les $2.",
 'viewcount' => 'Esta páxina visitóse {{PLURAL:$1|una vegada|$1 vegaes}}.',
 'protectedpage' => 'Páxina protexida',
 'jumpto' => 'Saltar a:',
@@ -510,7 +510,7 @@ Nun t'escaezas de camudar les tos [[Special:Preferences|preferencies de {{SITENA
 'nologinlink' => 'Crear una cuenta',
 'createaccount' => 'Crear una cuenta',
 'gotaccount' => '¿Yá tienes una cuenta? $1.',
-'gotaccountlink' => 'Entrar',
+'gotaccountlink' => 'Aniciar sesión',
 'userlogin-resetlink' => "¿Escaeció los datos d'accesu?",
 'userlogin-resetpassword-link' => '¿Escaeció la contraseña?',
 'helplogin-url' => 'Help:Aniciar sesión',
@@ -715,7 +715,7 @@ Tendría de facelo si los compartió con alguién de mou accidental o si la so c
 'link_tip' => 'Enllaz internu',
 'extlink_sample' => 'http://www.example.com títulu del enllaz',
 'extlink_tip' => "Enllaz esternu (recuerda'l prefixu http://)",
-'headline_sample' => 'Testu del titular',
+'headline_sample' => 'Testu de cabecera',
 'headline_tip' => 'Cabecera de nivel 2',
 'nowiki_sample' => 'Pon equí testu ensin formatu',
 'nowiki_tip' => 'Inorar el formatu wiki',
@@ -728,11 +728,11 @@ Tendría de facelo si los compartió con alguién de mou accidental o si la so c
 
 # Edit pages
 'summary' => 'Resume:',
-'subject' => 'Asuntu/titular:',
+'subject' => 'Asuntu/títulu:',
 'minoredit' => 'Esta ye una edición menor',
 'watchthis' => 'Vixilar esta páxina',
 'savearticle' => 'Guardar la páxina',
-'preview' => 'Previsualización',
+'preview' => 'Vista previa',
 'showpreview' => 'Amosar previsualización',
 'showlivepreview' => 'Vista rápida',
 'showdiff' => 'Amosar cambeos',
@@ -835,7 +835,7 @@ Les páxines personalizaes de .css y .js usen un títulu en minúscules, p. ex.
 ¡Los cambios entá nun se guardaron!",
 'continue-editing' => "Dir al área d'edición",
 'previewconflict' => "Esta vista previa amuesa'l testu del área d'edición d'arriba tal como apaecerá si escueyes guardar.",
-'session_fail_preview' => "'''¡Sentímoslo muncho! Nun pudimos procesar la to edición por aciu d'una perda de datos de la sesión.'''
+'session_fail_preview' => "'''¡Sentímoslo muncho! Nun pudimos procesar la to edición porque hebo una perda de datos de la sesión.'''
 Por favor, vuelvi a intentalo.
 Si inda nun funciona, intenta [[Special:UserLogout|colar]] y volver a aniciar sesión.",
 'session_fail_preview_html' => "'''¡Sentímoslo! Nun pudo procesase la to edición por aciu d'una perda de datos de la sesión.'''
@@ -1084,7 +1084,7 @@ Comprueba los rexistros, por favor.",
 ** Violación del Copyright
 ** Información personal o comentariu non apropiáu
 ** Nome d'usuariu non apropiáu
-** Información potencialmente bilordiosa",
+** Información potencialmente falsa",
 'revdelete-otherreason' => 'Motivu distintu/adicional:',
 'revdelete-reasonotherlist' => 'Otru motivu',
 'revdelete-edit-reasonlist' => 'Editar motivos del desaniciu',
@@ -1486,7 +1486,7 @@ Esta información sedrá pública.',
 'nchanges' => '{{PLURAL:$1|un cambiu|$1 cambios}}',
 'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|dende la última visita}}',
 'enhancedrc-history' => 'historial',
-'recentchanges' => 'Cambios recientes',
+'recentchanges' => 'Cambeos recientes',
 'recentchanges-legend' => 'Opciones de cambios recientes',
 'recentchanges-summary' => 'Sigui los cambios más recientes na wiki nesta páxina.',
 'recentchanges-noresult' => 'Nengún cambiu nel periodu conseñáu coincide con esos criterios.',
@@ -1507,7 +1507,7 @@ Esta información sedrá pública.',
 'rcshowhideanons' => '$1 usuarios anónimos',
 'rcshowhidepatr' => '$1 ediciones supervisaes',
 'rcshowhidemine' => '$1 les mios ediciones',
-'rclinks' => 'Amosar los caberos $1 cambios de los caberos $2 díes <br />$3',
+'rclinks' => 'Amosar los caberos $1 cambeos de los caberos $2 díes <br />$3',
 'diff' => 'dif',
 'hist' => 'hist',
 'hide' => 'Anubrir',
@@ -1525,7 +1525,7 @@ Esta información sedrá pública.',
 'rc-old-title' => 'creada orixinalmente como «$1»',
 
 # Recent changes linked
-'recentchangeslinked' => 'Cambios rellacionaos',
+'recentchangeslinked' => 'Cambeos rellacionaos',
 'recentchangeslinked-feed' => 'Cambios rellacionaos',
 'recentchangeslinked-toolbox' => 'Cambios rellacionaos',
 'recentchangeslinked-title' => 'Cambios rellacionaos con "$1"',
@@ -2053,8 +2053,8 @@ Date cuenta de qu'otros sitios web puen enllazar a un ficheru con una URL direut
 'booksources-invalid-isbn' => 'El códigu ISBN que puxisti nun paez que valga; mira que te vien copiáu de la fonte orixinal.',
 
 # Special:Log
-'specialloguserlabel' => 'Pol usuariu:',
-'speciallogtitlelabel' => 'Col títulu:',
+'specialloguserlabel' => 'Fecho por:',
+'speciallogtitlelabel' => 'Oxetivu (títulu o usuariu):',
 'log' => 'Rexistros',
 'all-logs-page' => 'Tolos rexistros públicos',
 'alllogstext' => "Visualización combinada de tolos rexistros disponibles de {{SITENAME}}.
@@ -2952,7 +2952,7 @@ Pues ver el so códigu fonte.',
 'anonymous' => '{{PLURAL:$1|Usuariu anónimu|Usuarios anónimos}} de {{SITENAME}}',
 'siteuser' => '{{SITENAME}} usuariu $1',
 'anonuser' => 'usuariu anónimu de {{SITENAME}} $1',
-'lastmodifiedatby' => "Esta páxina se camudó por cabera vegada'l $1 a les $2 por $3.",
+'lastmodifiedatby' => "L'últimu cambiu d'esta páxina foi el $1, a les $2, por $3.",
 'othercontribs' => 'Basao nel trabayu fechu por $1.',
 'others' => 'otros',
 'siteusers' => '{{SITENAME}} {{PLURAL:$2|usuariu|usuarios}} $1',
@@ -3059,8 +3059,8 @@ $1",
 # Media information
 'mediawarning' => "'''Avisu''': Esta triba de ficheru pue contener códigu maliciosu.
 Al executalu pues comprometer el to sistema.",
-'imagemaxsize' => "Llende del tamañu d'imaxe: <br />''(pa les páxines de descripción de ficheru)''",
-'thumbsize' => 'Tamañu de la muestra:',
+'imagemaxsize' => "Llende del tamañu d'imaxe: <br /><em>(pa les páxines de descripción de ficheru)</em>",
+'thumbsize' => 'Tamañu de la miniatura:',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|páxina|páxines}}',
 'file-info' => "tamañu d'archivu: $1, triba MIME: $2",
 'file-info-size' => '$1 × $2 píxels, tamañu de ficheru: $3, triba MIME: $4',
@@ -3654,8 +3654,8 @@ Por favor confirma que daveres quies volver a crear esta páxina.",
 'descending_abbrev' => 'desc',
 'table_pager_next' => 'Páxina siguiente',
 'table_pager_prev' => 'Páxina anterior',
-'table_pager_first' => 'Primer páxina',
-'table_pager_last' => 'Postrer páxina',
+'table_pager_first' => 'Primera páxina',
+'table_pager_last' => 'Última páxina',
 'table_pager_limit' => 'Amosar $1 elementos por páxina',
 'table_pager_limit_label' => 'Elementos por páxina:',
 'table_pager_limit_submit' => 'Dir',
index bf9a777..845512a 100644 (file)
@@ -2170,6 +2170,8 @@ $1',
 'protectedpages-expiry' => 'Сканчаецца',
 'protectedpages-performer' => 'Хто абараніў',
 'protectedpages-params' => 'Парамэтры абароны',
+'protectedpages-reason' => 'Прычына',
+'protectedpages-unknown-timestamp' => 'Невядома',
 'protectedtitles' => 'Забароненыя старонкі',
 'protectedtitlesempty' => 'Цяпер няма абароненых назваў з пазначанымі парамэтрамі.',
 'listusers' => 'Сьпіс удзельнікаў і ўдзельніц',
index d09fa00..a8b99ed 100644 (file)
@@ -2558,6 +2558,7 @@ PICT # тайп тайпан
 'exif-orientation-1' => 'Лартӏахь',
 
 'exif-xyresolution-i' => '$1 тӏадамаш дюйман',
+'exif-xyresolution-c' => '$1 тӀадамаш сантиметрна',
 
 'exif-meteringmode-5' => 'Матрин',
 
index 4de1cfe..40888f6 100644 (file)
@@ -363,6 +363,7 @@ $messages = array(
 'tog-showhiddencats' => 'Montri kaŝitajn kategoriojn',
 'tog-norollbackdiff' => 'Preterlasi ŝanĝoelmontron post malfaro',
 'tog-useeditwarning' => 'Averti min kiam mi forlasas redaktan paĝon kun nekonservitaj ŝanĝoj',
+'tog-prefershttps' => 'Ĉiam uzu sekuran konekton ensalutite',
 
 'underline-always' => 'Ĉiam',
 'underline-never' => 'Neniam',
@@ -688,6 +689,7 @@ Eble ĝi estis jam forigita de iu alia.',
 'cannotdelete-title' => 'Ne eblas forigi paĝon "$1"',
 'delete-hook-aborted' => 'Forigo estis ĉesigita per programa etendaĵo de MediaWiki.
 Ĝi ne donis eksplikon.',
+'no-null-revision' => 'Ne eblis krei novan nulan revizion por paĝo "$1"',
 'badtitle' => 'Fuŝa titolo',
 'badtitletext' => 'La petita paĝotitolo estis malvalida, malplena, aŭ malĝuste ligita interlingva aŭ intervikia titolo.
 Ĝi eble enhavas unu aŭ pliaj signoj, kiuj ne povas esti uzataj en titoloj.',
@@ -714,6 +716,7 @@ $2',
 'customjsprotected' => 'Vi ne rajtas redakti ĉi tiun Ĝavaskriptan paĝon, ĉar ĝi enhavas personajn alĝustigojn de alia uzanto.',
 'mycustomcssprotected' => 'Vi ne havas la rajton redakti tiun ĉi CSS-paĝon.',
 'mycustomjsprotected' => 'Vi ne havas la rajton redakti tiun ĉi JavaScript-paĝon.',
+'myprivateinfoprotected' => 'Vi ne havas permeson por redakti vian privatan informon.',
 'mypreferencesprotected' => 'Vi ne havas permeson por redakti viajn preferojn.',
 'ns-specialprotected' => 'Paĝoj en la {{ns:special}} nomspaco ne povas esti redaktataj.',
 'titleprotected' => "Ĉi tiu titolo estas protektita de kreado de [[User:$1|$1]].
@@ -1626,6 +1629,7 @@ indekso pro troŝarĝita servilo. Intertempe, vi povas serĉi per <i>guglo</i> a
 'right-unblockself' => 'Malforbari oni mem',
 'right-protect' => 'Ŝanĝi protektniveloj kaj redakti protektitajn paĝojn',
 'right-editprotected' => 'Redakti protektitajn paĝojn (sen kaskada protektado)',
+'right-editsemiprotected' => 'Redakti paĝojn protektitajn kiel "{{int:protect-level-autoconfirmed}}"',
 'right-editinterface' => 'Redakti la uzantointerfacon',
 'right-editusercssjs' => 'Redaktu CSS- kaj JS-dosierojn de aliaj uzantoj',
 'right-editusercss' => 'Redaktu CSS-dosierojn de aliaj uzantoj',
index 87077f2..f717947 100644 (file)
@@ -2237,7 +2237,7 @@ Ikus [[Special:ProtectedPages|orri babestuen zerrenda]], orain indarrean dauden
 'movedarticleprotection' => 'babes hobespenak "[[$2]]"tik "[[$1]]"(e)ra mugitu dira',
 'protect-title' => '«$1» babesten',
 'protect-title-notallowed' => '"$1"en babes maila ikusi',
-'prot_1movedto2' => '«$1» orria «$2» izenera aldatu da',
+'prot_1movedto2' => '«[[$1]]» orria «[[$2]]» izenera aldatu da',
 'protect-badnamespace-title' => 'Izen-tarte ez babesgarria',
 'protect-badnamespace-text' => 'Izen-tarte honetako orrialdeak ezin dira babestu.',
 'protect-norestrictiontypes-text' => 'Orrialde hau ezin da babestu ez daudelako mugapen mota eskuragarririk.',
index e9fa116..92ae6b1 100644 (file)
@@ -1373,7 +1373,8 @@ Lisätietoja löytyy [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 
 $1 {{int:pipe-separator}} $2',
 'searchmenu-exists' => "'''Tässä wikissä on sivu nimellä [[:$1]].'''",
-'searchmenu-new' => "'''Luo sivu ''[[:$1]]'' tähän wikiin.'''",
+'searchmenu-new' => '<strong>Luo sivu "[[:$1]]" tähän wikiin.</strong>{{PLURAL:$2|0=|Katso myös sivua, joka löytyi hakutoiminnolla.
+|Katso myös hakutuloksia.}}',
 'searchprofile-articles' => 'Sisältösivut',
 'searchprofile-project' => 'Ohje- ja projektisivut',
 'searchprofile-images' => 'Kuvat ja tiedostot',
@@ -1399,6 +1400,7 @@ $1 {{int:pipe-separator}} $2',
 'searchrelated' => 'samankaltainen',
 'searchall' => 'kaikki',
 'showingresults' => '{{PLURAL:$1|<strong>Yksi</strong> tulos|<strong>$1</strong> tulosta}} tuloksesta <strong>$2</strong> alkaen.',
+'showingresultsinrange' => 'Alla näytetään enintään {{PLURAL:$1|<strong>1</strong> tulos|<strong>$1</strong> tulosta}} väliltä <strong>$2</strong> – <strong>$3</strong>.',
 'showingresultsnum' => "Alla on {{PLURAL:$3|'''Yksi''' hakutulos|'''$3''' hakutulosta}} alkaen '''$2.''' tuloksesta.",
 'showingresultsheader' => "{{PLURAL:$5|Tulokset '''$1'''–'''$3'''|Tulokset '''$1'''–'''$2''' kaikkiaan '''$3''' osuman joukosta}} haulle '''$4'''",
 'search-nonefound' => 'Hakusi ei tuottanut tulosta.',
@@ -1827,6 +1829,8 @@ Jos sinulla on tämän kuvan alkuperäinen versio, tallenna se. Muussa tapaukses
 'fileexists-shared-forbidden' => 'Samanniminen tiedosto on jo olemassa jaetussa mediavarastossa. Tallenna tiedosto jollakin toisella nimellä. [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Tämä tiedosto on kaksoiskappale {{PLURAL:$1|seuraavasta tiedostosta|seuraavista tiedostoista}}:',
 'file-deleted-duplicate' => 'Tiedosto, joka on identtinen tämän tiedoston kanssa ([[:$1]]) on aiemmin poistettu. Katso kyseisen tiedoston poistoloki ennen kuin jatkat uudelleentallentamista.',
+'file-deleted-duplicate-notitle' => 'Tämän tiedoston kanssa samanlainen tiedosto on aikaisemmin poistettu ja tiedoston nimi on häivytetty.
+Sinun on syytä pyytää jotakuta häivytettyjen tietojen näkemiseen oikeutettua käyttäjää katsomaan tiedoston tiedot asian arvioimiseksi ennen kuin jatkat tiedoston lataamista tietokantaan.',
 'uploadwarning' => 'Tallennusvaroitus',
 'uploadwarning-text' => 'Muuta alla olevaa tiedostokuvausta ja yritä uudelleen.',
 'savefile' => 'Tallenna',
@@ -2198,6 +2202,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'deadendpagestext' => 'Seuraavat sivut eivät linkitä muihin sivuihin wikissä.',
 'protectedpages' => 'Suojatut sivut',
 'protectedpages-indef' => 'Vain ikuisesti suojatut',
+'protectedpages-summary' => 'Tällä sivulla on luetteloitu ne sivut, jotka ovat tällä hetkellä suojattuja. Jos haluat nähdä luettelon niistä sivujen nimistä, jotka on suojattu uudelleenluonnilta, katso  [[{{#special:ProtectedTitles}}]].',
 'protectedpages-cascade' => 'Vain tarttuvasti suojatut',
 'protectedpages-noredirect' => 'Piilota ohjaukset',
 'protectedpagesempty' => 'Mitään sivuja ei ole tällä hetkellä suojattu näillä asetuksilla.',
@@ -2205,11 +2210,12 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'protectedpages-page' => 'Sivu',
 'protectedpages-expiry' => 'Vanhentuu',
 'protectedpages-performer' => 'Suojauksen asettanut',
-'protectedpages-params' => 'Suojauksen parametrit',
+'protectedpages-params' => 'Suojauksen asetukset',
 'protectedpages-reason' => 'Syy',
 'protectedpages-unknown-timestamp' => 'Tuntematon',
 'protectedpages-unknown-performer' => 'Tuntematon käyttäjä',
 'protectedtitles' => 'Suojatut sivunimet',
+'protectedtitles-summary' => 'Tällä sivulla on lueteltu ne sivut, jotka ovat tällä hetkellä suojatut uudelleenluonnilta. Jos haluat nähdä luettelon suojatuista olemassa olevista sivuista, katso [[{{#special:ProtectedPages}}]].',
 'protectedtitlesempty' => 'Ei suojattuja sivunimiä näillä hakuehdoilla.',
 'listusers' => 'Käyttäjälista',
 'listusers-editsonly' => 'Näytä vain käyttäjät, joilla on muokkauksia',
@@ -2549,8 +2555,8 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 ** Suuri näkyvyys',
 'protect-edit-reasonlist' => 'Muokkaa suojaussyitä',
 'protect-expiry-options' => '1 tunti:1 hour,1 päivä:1 day,1 viikko:1 week,2 viikkoa:2 weeks,1 kuukausi:1 month,3 kuukautta:3 months,6 kuukautta:6 months,1 vuosi:1 year,ikuinen:infinite',
-'restriction-type' => 'Rajoitus',
-'restriction-level' => 'Suojaus',
+'restriction-type' => 'Rajoitus:',
+'restriction-level' => 'Suojaustaso:',
 'minimum-size' => 'Vähimmäiskoko',
 'maximum-size' => 'Enimmäiskoko',
 'pagesize' => 'tavua',
@@ -2564,7 +2570,7 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 # Restriction levels
 'restriction-level-sysop' => 'täysin suojattu',
 'restriction-level-autoconfirmed' => 'osittaissuojattu',
-'restriction-level-all' => 'mikä tahansa suojaus',
+'restriction-level-all' => 'kaikki tasot',
 
 # Undelete
 'undelete' => 'Tarkastele poistettuja sivuja',
@@ -2951,6 +2957,8 @@ $2',
 'thumbnail_image-type' => 'Kuvamuoto ei ole tuettu',
 'thumbnail_gd-library' => 'GD-kirjastoa ei ole asennettu oikein. Funktio $1 puuttuu.',
 'thumbnail_image-missing' => 'Tiedosto näyttää puuttuvan: $1',
+'thumbnail_image-failure-limit' => 'Tätä kuvan näyttöasettelua (thumbnail) on yritetty toteuttaa liian monta kertaa epäonnistuneesti ($1 tai enemmän).
+Ole hyvä ja yritä myöhemmin uudelleen.',
 
 # Special:Import
 'import' => 'Tuo sivuja',
@@ -4169,4 +4177,6 @@ Toisin sanoen melkein kaiken, joka on kaksoisaaltosulkeiden sisällä.',
 'expand_templates_generate_rawhtml' => 'Näytä raaka HTML',
 'expand_templates_preview' => 'Esikatselu',
 
+# Unknown messages
+'uploadinvalidxml' => 'Ladatun tiedoston XML-koodia ei voitu jäsentää kunnolla.',
 );
index 5c90b4b..fd7d8df 100644 (file)
@@ -2174,6 +2174,7 @@ I redirect <del>cancellati</del> sono stati corretti.',
 'deadendpagestext' => 'Le pagine indicate di seguito sono prive di collegamenti verso altre pagine di {{SITENAME}}.',
 'protectedpages' => 'Pagine protette',
 'protectedpages-indef' => 'Solo protezioni infinite',
+'protectedpages-summary' => "Questa pagina elenca le pagine esistenti che sono attualmente protette. Per un'elenco di titoli protetti dalla creazione, vedi [[{{#special:ProtectedTitles}}]].",
 'protectedpages-cascade' => 'Solo protezioni ricorsive',
 'protectedpages-noredirect' => 'Nascondi redirect',
 'protectedpagesempty' => 'Al momento non vi sono pagine protette',
@@ -2185,6 +2186,7 @@ I redirect <del>cancellati</del> sono stati corretti.',
 'protectedpages-unknown-timestamp' => 'Sconosciuto',
 'protectedpages-unknown-performer' => 'Utente sconosciuto',
 'protectedtitles' => 'Titoli protetti',
+'protectedtitles-summary' => "Questa pagina elenca i titoli che sono attualmente protetti dalla creazione. Per un'elenco di pagine esistenti che sono protette, vedi [[{{#special:ProtectedPages}}]].",
 'protectedtitlesempty' => 'Al momento non esistono titoli protetti con i parametri specificati.',
 'listusers' => 'Elenco degli utenti',
 'listusers-editsonly' => 'Mostra solo utenti con dei contributi',
index 7b82db3..16f83ec 100644 (file)
@@ -1272,6 +1272,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。',
 'undo-failure' => '中間の版での編集と競合したため、取り消せませんでした。',
 'undo-norev' => '取り消そうとした編集が存在しないか削除済みのため取り消せませんでした。',
+'undo-nochange' => '指定した編集は既に取り消されたようです。',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|トーク]]) による版 $1 を取り消し',
 'undo-summary-username-hidden' => '秘匿された利用者による版 $1 を取り消し',
 
index b4cfc0b..bf0e3ae 100644 (file)
@@ -1366,7 +1366,7 @@ Donn de Version makeere bes wohen (inklusive) dat övverdraare wäde sull. Donn
 'editundo' => 'De letzte Änderung zeröck nämme',
 'diff-empty' => '(Keine Ongerscheid)',
 'diff-multi-sameuser' => '(Mer don hee {{PLURAL:$1|eij Väsjohn|$1 Väsjohne|keij Väsjohn}} dozwesche nit zeije.   Se {{PLURAL:$1|es|sin|wöhr}} vum sällve Metmaacher)',
-'diff-multi-otherusers' => '(Mer don hee {{PLURAL:$1|eij Väsjohn|$1 Väsjohne|keij Väsjohn}} dozwesche vun {{PLURAL:$1|einem|$1 ongerscheidlijje|keinem}} Metmaacher nit zeije)',
+'diff-multi-otherusers' => '(Mer don hee {{PLURAL:$1|eij Väsjohn|$1 Väsjohne|keij Väsjohn}} dozwesche vun {{PLURAL:$2|einem|$2 ongerscheidlijje|keinem}} Metmaacher nit zeije)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Ein Version|$1 Versione|kei Version}} dozwesche vun mieh wi {{PLURAL:$2|einem Metmaacher|$2 Metmaachere|keinem Metmaacher}} wääde nit jezeish)',
 'difference-missing-revision' => '{{PLURAL:$2|Ein Version|$2 Versione}} vun heh däm Verjlisch zwesche Versione ($1) {{PLURAL:$2|hammer}} nit jefonge.
 
index 0924c39..efdd7fc 100644 (file)
@@ -2309,6 +2309,7 @@ $1',
 'deadendpagestext' => 'Следните страници немаат врски кон ниту една друга страница на ова вики.',
 'protectedpages' => 'Заштитени страници',
 'protectedpages-indef' => 'Само бесконечни заштити',
+'protectedpages-summary' => 'На страницата се наведени постоечки страници што се моментално под заштита. За список на наслови што се заштитени од создавање, погледајте [[{{#special:ProtectedTitles}}]].',
 'protectedpages-cascade' => 'Само каскадни заштити',
 'protectedpages-noredirect' => 'Скриј пренасочувања',
 'protectedpagesempty' => 'Во моментов нема заштитени страници со параметрите кои ги зададовте.',
@@ -2321,6 +2322,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'Непознато',
 'protectedpages-unknown-performer' => 'Непознат корисник',
 'protectedtitles' => 'Заштитени наслови',
+'protectedtitles-summary' => 'На страницата се наведени наслови што се моментално заштитени од создавање. За список на постоечки страници што се заштитени, погледајте [[{{#special:ProtectedPages}}]].',
 'protectedtitlesempty' => 'Во овој момент нема заштитени наслови кои ги задоволуваат наведените критериуми.',
 'listusers' => 'Список на корисници',
 'listusers-editsonly' => 'Прикажи само корисници кои уредувале',
index 42b2131..96996b4 100644 (file)
@@ -1962,6 +1962,7 @@ Adess a l'é na ridiression a [[$2]].",
 'deadendpagestext' => "Le pàgine ambelessì-sota a l'han pa d'anliure anvers a j'àutre pàgine ëd {{SITENAME}}.",
 'protectedpages' => 'Pàgine sota protession',
 'protectedpages-indef' => 'Mach protession anfinìe',
+'protectedpages-summary' => "Costa pàgina a lista dle pàgine esistente che a son al moment protegiùe. Për na lista dij tìtoj ch'a son protet da la creassion, vëdde [[{{#special:ProtectedTitles}}]].",
 'protectedpages-cascade' => 'Mach protession a cascà',
 'protectedpages-noredirect' => 'Stërmé le ridiression',
 'protectedpagesempty' => 'Për adess a-i é pa gnun-a pàgina protegiùa',
@@ -1974,6 +1975,7 @@ Adess a l'é na ridiression a [[$2]].",
 'protectedpages-unknown-timestamp' => 'Sconossùa',
 'protectedpages-unknown-performer' => 'Utent ësconossù',
 'protectedtitles' => 'Tìtoj protegiù',
+'protectedtitles-summary' => 'Costa pàgina a lista dij tìtoj che a son al moment protegiù da la creassion. Për na lista dle pàgine esistente che a son protegiùe, vëdde [[{{#special:ProtectedPages}}]].',
 'protectedtitlesempty' => "A-i é pa gnun tìtol protegiù ch'a-i intra coi criteri ch'a l'ha butà.",
 'listusers' => "Lista dj'utent",
 'listusers-editsonly' => "Mostré mach j'utent ch'a l'han fàit dle modìfiche",
index ea65c88..aa8542b 100644 (file)
@@ -2302,11 +2302,21 @@ See also:
 {{Identical|Undo}}',
 'undo-failure' => 'Message appears if an attempt to revert an edit by clicking the "undo" link on the page history fails.
 
+See also:
+* {{msg-mw|Undo-norev}}
+* {{msg-mw|Undo-nochange}}
 {{Identical|Undo}}',
 'undo-norev' => 'Message appears if an attempt to revert an edit by clicking the "undo" link on the page history fails.
 
+See also:
+* {{msg-mw|Undo-failure}}
+* {{msg-mw|Undo-nochange}}
 {{Identical|Undo}}',
-'undo-nochange' => 'Message appears if an attempt to revert an edit by clicking the "undo" link results in an edit making no change to the current version of the page.',
+'undo-nochange' => 'Message appears if an attempt to revert an edit by clicking the "undo" link results in an edit making no change to the current version of the page.
+
+See also:
+* {{msg-mw|Undo-failure}}
+* {{msg-mw|Undo-norev}}',
 'undo-summary' => 'Edit summary for an undo action. Parameters:
 * $1 - revision ID
 * $2 - username
index 0dd7b4e..ce016a1 100644 (file)
@@ -2218,6 +2218,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'deadendpagestext' => 'Următoarele pagini nu se leagă de alte pagini din acestă wiki.',
 'protectedpages' => 'Pagini protejate',
 'protectedpages-indef' => 'Doar protejări pe termen nelimitat',
+'protectedpages-summary' => 'Această pagină enumeră paginile protejate în acest moment. Pentru o listă a titlurilor protejate la creare, vedeți [[{{#special:ProtectedTitles}}]].',
 'protectedpages-cascade' => 'Doar protejări în cascadă',
 'protectedpages-noredirect' => 'Ascunde redirecționările',
 'protectedpagesempty' => 'Nu există pagini protejate',
@@ -2230,6 +2231,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'protectedpages-unknown-timestamp' => 'Necunoscut',
 'protectedpages-unknown-performer' => 'Utilizator necunoscut',
 'protectedtitles' => 'Titluri protejate',
+'protectedtitles-summary' => 'Această pagină enumeră titlurile protejate la creare în acest moment. Pentru o listă a paginilor deja existente care sunt protejate, vedeți [[{{#special:ProtectedPages}}]].',
 'protectedtitlesempty' => 'Nu există titluri protejate cu acești parametri.',
 'listusers' => 'Listă utilizatori',
 'listusers-editsonly' => 'Arată doar utilizatorii cu modificări',
index 6cd2cb6..066436e 100644 (file)
@@ -2370,6 +2370,7 @@ $1',
 'deadendpagestext' => 'Следующие страницы не содержат ссылок на другие страницы в этой вики.',
 'protectedpages' => 'Защищённые страницы',
 'protectedpages-indef' => 'Только бессрочные защиты',
+'protectedpages-summary' => 'На этой странице перечислены существующие страницы, которые в настоящее время защищены. Для списка названий, которые защищены от создания см. [[{{#special:ProtectedTitles}}]].',
 'protectedpages-cascade' => 'Только каскадная защита',
 'protectedpages-noredirect' => 'Скрыть перенаправления',
 'protectedpagesempty' => 'В настоящий момент нет защищённых страниц с указанными параметрами',
@@ -2382,6 +2383,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'Неизвестно',
 'protectedpages-unknown-performer' => 'Неизвестный участник',
 'protectedtitles' => 'Защищённые названия',
+'protectedtitles-summary' => 'На этой странице перечислены названия, которые защищены от создания. Для списка существующих страниц, которые в настоящее время защищены, см. [[{{#special:ProtectedPages}}]].',
 'protectedtitlesempty' => 'В настоящий момент нет запрещённых названий с указанными параметрами.',
 'listusers' => 'Список участников',
 'listusers-editsonly' => 'Показать только тех участников, кто сделал хотя бы одну правку',
index cb73567..f9a58f9 100644 (file)
@@ -10,6 +10,7 @@
  * @author (vinny)
  * @author Avicennasis
  * @author Derek Ross
+ * @author John Reid
  * @author Malafaya
  * @author OchAyeTheNoo
  * @author Omnipaedista
@@ -264,6 +265,7 @@ $messages = array(
 'toc' => 'Table o contents',
 'showtoc' => 'shaw',
 'hidetoc' => 'scouk',
+'collapsible-collapse' => 'Collapse.',
 'thisisdeleted' => 'View or cower $1?',
 'viewdeleted' => 'View $1?',
 'restorelink' => '{{PLURAL:$1|one delete edit|$1 delete edits}}',
@@ -591,6 +593,8 @@ Ye shuld check that it is guid tae keep editin this page.
 The deletion and flit log for this page is providit here:",
 'moveddeleted-notice' => 'This page haes bin deletit. 
 The deletion and flit log fur the page are provided below fur reference.',
+'editwarning-warning' => 'Leain this page micht cause ye tae lose oni chynges ye\'v made.
+Gif ye\'r loggit in, ye can disable this warning in the "{{int:prefs-editing}}" section o yer preferences.',
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Wairnin:''' Template include size is tae lairge. 
@@ -603,6 +607,7 @@ Thae arguments hae been left oot.',
 # "Undo" feature
 'undo-success' => 'The edit can be undone. Please check the chynges albo tae check that this is whit ye wint tae dae, an then hain the chynges albo tae be duin undooin the edit.',
 'undo-failure' => 'The edit culdnae be undone acause o conflictin edits inatween.',
+'undo-nochange' => 'The edit appears tae hae awready been ondone.',
 'undo-summary' => 'Undo reveision $1 by [[Special:Contributions/$2|$2]] ([[User talk:$2|Collogue]])',
 
 # Account creation failure
@@ -671,6 +676,8 @@ there micht be parteeculars in the [{{fullurl:{{#Special:Log}}/suppress|page={{F
 'lineno' => 'Line $1:',
 'compareselectedversions' => 'Compare selectit versions',
 'editundo' => 'undo',
+'diff-multi-sameuser' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} bi the same uiser no shown)',
+'diff-multi-otherusers' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} bi {{PLURAL:$2|one other user|$2 users}} not shown)',
 
 # Search results
 'searchresults' => 'Rake results',
@@ -704,6 +711,7 @@ there micht be parteeculars in the [{{fullurl:{{#Special:Log}}/suppress|page={{F
 'searchrelated' => 'related',
 'searchall' => 'aw',
 'showingresults' => "Shawin ablo up tae {{PLURAL:$1|'''1''' result|'''$1''' results}} stertin wi #'''$2'''.",
+'showingresultsinrange' => 'Showin ablow up til {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> results}} in range #<strong>$2</strong> to #<strong>$3</strong>.',
 'showingresultsnum' => "Shawin ablo {{PLURAL:$3|'''1''' result|'''$3''' results}} stertin wi #'''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5|Ootcome '''$1''' of '''$3'''|Ootcomes '''$1 - $2''' of '''$3'''}} for '''$4'''",
 'search-nonefound' => "Thare wur na ootcomes matching th' query.",
@@ -727,6 +735,7 @@ there micht be parteeculars in the [{{fullurl:{{#Special:Log}}/suppress|page={{F
 'searchresultshead' => 'Rake result settins',
 'stub-threshold-disabled' => 'Tuckie',
 'recentchangescount' => 'Nummer o teitles in recent chynges',
+'prefs-help-watchlist-token2' => 'This is the hidlins key til the wab feed o yer watchleet. Onibodie wha kens this can read yer watchleel, sae dinna share it. Gif ye need to, [[Special:ResetTokens|You ca reset it]].',
 'savedprefs' => 'Yer preferences haes been hained.',
 'servertime' => 'Server time is nou',
 'guesstimezone' => 'Fill in frae brouser',
@@ -954,6 +963,16 @@ Th' description oan tis [$2 file description page] thare is shown below.",
 'prefixindex' => 'All pages with prefix',
 'longpages' => 'Lang pages',
 'deadendpages' => 'Deid-end pages',
+'protectedpages-summary' => 'This page leets existing pages that are nou protectit. Fer a leet o titles that are protectit fae creation, see [[{{#special:ProtectedTitles}}]].',
+'protectedpages-timestamp' => 'Timestamp.',
+'protectedpages-page' => 'Page.',
+'protectedpages-expiry' => 'Dies',
+'protectedpages-performer' => 'Protecting uisser',
+'protectedpages-params' => 'Protection guidins',
+'protectedpages-reason' => 'Raison',
+'protectedpages-unknown-timestamp' => "Onken't",
+'protectedpages-unknown-performer' => "Onken't user",
+'protectedtitles-summary' => 'This page leets titles that are nou protectit fae creation. Fer a leet of exeesting pages that are protectit, see [[{{#special:ProtectedPages}}]].',
 'listusers' => 'Uiser leet',
 'usercreated' => 'Created on $1 at $2',
 'newpages' => 'New pages',
@@ -1041,6 +1060,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchlist-details' => "{{PLURAL:$1|$1 page|$1 pages}} on yer watchleet, nae countin' collogue pages.",
 'watchlistcontains' => 'Yer watchleet contains $1 {{PLURAL:$1|page|pages}}.',
 'iteminvalidname' => "Trouble wi eitem '$1', invalid name...",
+'wlnote2' => 'Ablow ar the chynges in the hainmaist {{PLURAL:$1|hour|<strong>$1</strong> hours}}, as of $3, $2.',
 'wlshowlast' => 'Shaw lest $1 hours $2 days $3',
 'watchlist-options' => 'Watchleet options',
 
@@ -1114,6 +1134,8 @@ an that ye'r daein this in accord wi [[{{MediaWiki:Policy-url}}]].",
 'viewdeletedpage' => 'View delete pages',
 'undeletepagetext' => 'The follaein pages haev bin deleted but are aye in the archive an
 can be restored. The archive micht be redd oot noo an then.',
+'undeleteextrahelp' => "In order tae restore the page's entire histerie, lea aw checkboxes onselected an clap on <strong><em>{{int:undeletebtn}}</em></strong>.
+Tae perform ae selective restoration, check the boxes corresponding til the revisions tae be restored, an clap on <strong><em>{{int:undeletebtn}}</em></strong>.",
 'undeletehistory' => 'Gin ye restore the page, aa reveisions will be restored til the history.
 Gin a neow page wi the same name haes bin created syne the deletion, the restored
 reveisions will appear in the aulder history, an the current reveision o the live page winna be autaematically replaced.',
@@ -1124,6 +1146,9 @@ afore it wis delete. The actual text o thir deletit reveisions is available tae
 'undeleteviewlink' => 'view',
 'undeletedrevisions' => '{{PLURAL:$1|1 reveision|$1 reveisions}} restored',
 'cannotundelete' => 'Undelete didna wirk; some ither bodie micht hae aareadies undeletit the page.',
+'undeletedpage' => '<strong>$1 has been restored</strong>
+
+Consult the [[Special:Log/delete|deletion log]] fer ae record o recent deletions an restorations.',
 
 # Namespace form on various pages
 'namespace' => 'Namespace:',
@@ -1156,6 +1181,7 @@ afore it wis delete. The actual text o thir deletit reveisions is available tae
 'whatlinkshere-page' => 'Page:',
 'linkshere' => "The follaein pages airts tae '''[[:$1]]''':",
 'nolinkshere' => "Nae pages airt tae '''[[:$1]]'''.",
+'nolinkshere-ns' => 'No pages aiet til <strong>[[:$1]]</strong> in the choosen namespace.',
 'isredirect' => 'reguidal page',
 'istemplate' => 'transclusion',
 'isimage' => 'file link',
@@ -1191,7 +1217,7 @@ tae an afore-blockit IP address or uisername.',
 'unblocklink' => 'unblock',
 'change-blocklink' => 'chynge block',
 'contribslink' => 'contreibs',
-'autoblocker' => 'Autaematically blockit syne yer IP address haes been uised recently bi "[[User:$1|$1]]". The raeson gien for $1\'s block is "\'\'$2\'\'"',
+'autoblocker' => 'Autaematically blockit syne yer IP address haes been uised recently bi "[[User:$1|$1]]". The raeson gien fer $1\'s block is "$2"',
 'blocklogpage' => 'Block log',
 'blocklogentry' => 'blockit [[$1]] wi an expiry time o $2 $3',
 'blocklogtext' => 'This is a log o uiser blockin an unblockin actions. Autaematically blockit IP addresses isna leetit. See the [[Special:BlockList|IP block leet]] for the leet o bans and blocks on the gae the nou.',
@@ -1217,24 +1243,37 @@ tae an afore-blockit IP address or uisername.',
 
 # Move page
 'move-page-legend' => 'Flit page',
-'movepagetext' => "Uisin the form ablo will rename a page, flittin aa its history tae the new name.
-The auld teitle will become a reguidal page tae the new teitle.
-Airtins tae the auld page teitle willna be chynged;
-be siccar tae check for dooble or brucken reguidals.
-You ar responsible for makkin siccar that airtins continues tae pynt whaur thay ar supposed tae gang.
-
-Mynd that the page '''willna''' be flittit gin the'r aareadies a page at the new teitle, unless it is tuim or a reguidal and haes nae past edit history.
-This means that ye can rename a page back tae whaur it wis juist renamed frae gin ye mak a mistak, an ye canna owerwrite an existin page
-
-'''WARNIN!'''
-This can be a drastic and unexpectit chynge for a popular page;
-please be siccar ye unnerstaun the consequences o this afore proceedin.",
+'movepagetext' => "Uisin the form ablow will rename ae page, muiving aw o its histerie til the new name.
+The auld title will become ae redirect page til the new title.
+Ye can update redirects that point til the original title autaematicly.
+Gif ye chuis no tae, be sair tae check fer [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].
+Ye'r responsible fer making sair that airtins continue tae pynt til whaur they'r supposed to gae.
+
+Note that the page will <strong>no</strong> be muived gif there is awready ae page at the new title, onless the latter is ae redirect an has nae past edit history.
+This means that ye can rename ae page back til whaur it wis renamed fae gif ye mak ae mistak, an ye canna o'erwrite aen existing page.
+
+<strong>Warning!</strong>
+This can be ae drastic an onexpected chynge fer ae popular page;
+please be sair ye unnerstaun the consequences o this afore proceeding.",
+'movepagetext-noredirectfixer' => "Uising the form ablow will rename ae page, muiving aw o its histerie til the new name.
+The auld title will become ae redirect page til the new title.
+Be sair tae check fer [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].
+Ye'r responsible fer making sair that airtins continue tae pynt whaur thay'r supposed to gae.
+
+Note that the page will <strong>no</strong> be muived gif there's awready ae page at the new title, onless it is tuim an has naw past edit history.
+This means that you can rename a page back to whaur it wis renamed fae gif ye mak ae mistak, an ye canna o'erwrite an existin page.
+
+<strong>Warnin!</strong>
+This can be ae drastic an onexpectit chynge fer ae popular page;
+please be sair ye unnerstaun the consequences of this afore proceedin.",
 'movepagetalktext' => "The associate Collogue page, gin onie, will be autaematically flittit alang wi it '''unless:''' *Ye'r flittin the page across namespaces, *A collogue page that isna tuim aareadies exists unner the new name, or *Ye tak the tick oot o the box ablo. In thae cases, ye maun flit or merge the page manually later gin ye hae saicont thochts.",
 'movearticle' => 'Flit page:',
+'moveuserpage-warning' => "<strong>Warning:</strong> Ye'r aboot tae muiv ae uiser page. Please note that yinly the page will be muivd and the uiser will <em>no</em> be renamed.",
 'movenologintext' => 'Ye maun be a registert uiser an [[Special:UserLogin|loggit in]] tae flit a page.',
 'newtitle' => 'Tae new teitle',
 'movepagebtn' => 'Flit page',
 'pagemovedsub' => 'Flittin succeedit',
+'movepage-moved' => '<strong>"$1" has been muived til "$2"</strong>',
 'articleexists' => "A page o that name aareadies exists, or the name ye'v waled isna guid. Please wale anither name.",
 'movetalk' => 'Flit "collogue" page an aa, gin it\'s applicable.',
 'movelogpage' => 'Flit log',
@@ -1248,6 +1287,10 @@ The destination airticle "[[:$1]]" aareadies exists. Div ye want tae delete it f
 'delete_and_move_confirm' => 'Aye, delete the page',
 'delete_and_move_reason' => 'Delete for tae mak wey for flittin',
 'selfmove' => 'Ootgaun an incomin teitles is the same; canna flit a page ower itsel.',
+'protectedpagemovewarning' => '<strong>Warning:</strong> This page has been protected sae that yinly uisers wi administrater preevileges can muiv it.
+The hainmaist log entry is provided ablow fer reference:',
+'semiprotectedpagemovewarning' => '<strong>Note:</strong> This page has been protected sae that yinly registered uisers can muiv it.
+The hainmaist log entry is provided ablow fer reference:',
 
 # Export
 'export' => 'Export pages',
@@ -1257,6 +1300,8 @@ Tae export airticle pages, enter the teitles in the text box ablo, ae teitle tae
 
 In the saicont case ye can uise an airtin forbye, for exemplar [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] for the airticle "[[{{MediaWiki:Mainpage}}]]".',
 'exportcuronly' => 'Include juist the current revision, no the fou history',
+'exportnohistory' => '----
+<strong>Note:</strong> Exporting the ful histerie o pages through this form has been disabled caus o performance raisons.',
 
 # Namespace 8 related
 'allmessages' => 'Aa seestem messages',
@@ -1265,11 +1310,13 @@ In the saicont case ye can uise an airtin forbye, for exemplar [[{{#Special:Expo
 'allmessagescurrent' => 'Text the nou',
 'allmessagestext' => 'This is a leet o aa seestem messages available in the MediaWiki: namespace.',
 'allmessagesnotsupportedDB' => "'''{{ns:special}}:AllMessages''' nae supportit acause '''\$wgUseDatabaseMessages''' is aff.",
+'allmessages-filter-translate' => "O'erset",
 
 # Thumbnails
 'thumbnail-more' => 'Eik',
 'filemissing' => 'File missin',
 'thumbnail_error' => 'Error creating thumbnail: $1',
+'thumbnail_image-failure-limit' => "There hae been o'er mony recent failed attempts ($1 or more) tae render this thumbnail. Please try again later.",
 
 # Special:Import
 'importtext' => 'Please export the file frae the soorce wiki uisin the Special:Export utility, hain it in yer disc an uplaid it here.',
@@ -1277,6 +1324,8 @@ In the saicont case ye can uise an airtin forbye, for exemplar [[{{#Special:Expo
 'importsuccess' => 'Importit fine!',
 'importhistoryconflict' => 'Conflictin history revision exists (micht hae importit this page afore)',
 'importnosources' => 'Nae transwiki import soorces haes been defined an direct history uplaids is disabled.',
+'import-nonewrevisions' => 'Nae revisions imported (aw were either awready present, or skipped cause o errors).',
+'import-error-bad-location' => 'Revision $2 uising content model $3 canna be stored on "$1" on this wiki, syn that model isna supported on that page.',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Yer uiser page',
@@ -1348,6 +1397,8 @@ You ken view its source',
 # Spam protection
 'spamprotectiontext' => 'The page ye wanted tae save wis blockit bi the spam filter. This is maist likely caused bi an airtin til an outby site.',
 'spamprotectionmatch' => 'The follaein text is whit triggered wir spam filter: $1',
+'simpleantispam-label' => 'Anti-spam check.
+Dae <strong>NO</strong> ful this in!',
 
 # Patrolling
 'markaspatrolleddiff' => 'Merk as patrolled',
@@ -1364,12 +1415,15 @@ You ken view its source',
 'nextdiff' => 'Newer edit →',
 
 # Media information
-'mediawarning' => "'''Warnin''': This file micht haud mislushious code; bi executin it yer seestem micht be compromised.",
-'imagemaxsize' => 'Limit eimages on eimage description pages tae:',
+'mediawarning' => '<strong>Warning:</strong> This file type micht contain maleecious code.
+Bi executing it, yer system micht be compromised.',
+'imagemaxsize' => 'Eimage size limit:<br /><em>(fer file description pages)</em>',
 'file-info-size' => '$1 × $2 pixels, file size: $3, MIME type: $4',
 'file-nohires' => 'Na higher resolution available.',
 'svg-long-desc' => 'SVG file, nominally $1 × $2 pixels, file size: $3',
 'show-big-image' => 'Full resolution',
+'file-no-thumb-animation' => '<strong>Note: Due til technical limitations, thumbnails o this file will no be animated.</strong>',
+'file-no-thumb-animation-gif' => '<strong>Note: Due til technical limitations, thumbnails o hich resolution GIF eimages sic as this will no be animated.</strong>',
 
 # Special:NewFiles
 'newimages' => 'Gallery o new files',
@@ -1448,7 +1502,7 @@ $5
 This confirmation code will end at $4.',
 
 # Delete conflict
-'deletedwhileediting' => 'Warnin: This page haes been delete syne ye stertit editin!',
+'deletedwhileediting' => '<strong>Warning:</strong> This page wis deletit efter ye sterted editing!',
 'confirmrecreate' => "Uiser [[User:$1|$1]] ([[User talk:$1|collogue]]) deletit this airticle efter ye stertit editin, giein the raeson:
 : ''$2''
 Please confirm that ye really want tae recreate this airticle.",
@@ -1479,6 +1533,9 @@ Please confirm that ye really want tae recreate this airticle.",
 # Core parser functions
 'duplicate-defaultsort' => '\'\'\'Wairnin:\'\'\' Default sort key "$2" overrides earlier default sort key "$1".',
 
+# Special:Version
+'version-poweredby-credits' => 'This wiki is pwred bi <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copiericht © 2001-$1 $2.',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch-filename' => 'Filename:',
 'fileduplicatesearch-submit' => 'Rake',
index be034d8..a51d384 100644 (file)
@@ -1220,7 +1220,7 @@ Anledningen enligt $3 var ''$2''",
 'page_first' => 'första',
 'page_last' => 'sista',
 'histlegend' => "Val av diff: markera i klickrutorna för att jämföra versioner och tryck enter eller knappen längst ner.<br />
-Förklaring: (nuvarande) = skillnad mot nuvarande version; (föregående) = skillnad mot föregående version; '''m''' = mindre ändring.",
+Förklaring: '''({{int:cur}})''' = skillnad mot senaste version; '''({{int:last}})''' = skillnad mot föregående version; '''{{int:minoreditletter}}''' = mindre ändring.",
 'history-fieldset-title' => 'Bläddra i historiken',
 'history-show-deleted' => 'Endast borttagna',
 'histfirst' => 'äldsta',
@@ -1532,7 +1532,7 @@ Programvaran använder detta värde för att adressera dig till andra med rätt
 'prefs-help-realname' => 'Riktigt namn behöver inte anges.
 Om du väljer att ange ditt riktiga namn, kommer det att användas för att tillskriva dig ditt arbete.',
 'prefs-help-email' => 'Att ange e-postadress är valfritt, men gör det möjligt att få ditt lösenord mejlat till dig om du glömmer det.',
-'prefs-help-email-others' => 'Du kan också välja att låta andra kontakta dig med e-post genom en länk på din användar- eller diskussionssida. Din e-postadress avslöjas inte när andra användare kontaktar dig.',
+'prefs-help-email-others' => 'Du kan också välja att låta andra kontakta dig via e-post genom en länk på din användar- eller diskussionssida. Din e-postadress avslöjas inte när andra användare kontaktar dig.',
 'prefs-help-email-required' => 'E-postadress måste anges.',
 'prefs-info' => 'Grundläggande information',
 'prefs-i18n' => 'Internationalisering',
@@ -2244,6 +2244,7 @@ Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt
 'deadendpagestext' => 'Följande sidor saknar länkar till andra sidor på {{SITENAME}}.',
 'protectedpages' => 'Skyddade sidor',
 'protectedpages-indef' => 'Endast skydd på obestämd tid',
+'protectedpages-summary' => 'Denna sida listar befintliga sidor som för närvarande är skyddade. För en lista över titlar som skyddas från att skapas, se [[{{#special:ProtectedTitles}}]].',
 'protectedpages-cascade' => 'Endast kaskaderande skydd',
 'protectedpages-noredirect' => 'Dölj omdirigeringar',
 'protectedpagesempty' => 'Inga sidor är skyddade under de villkoren.',
@@ -2256,6 +2257,7 @@ Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt
 'protectedpages-unknown-timestamp' => 'Okänd',
 'protectedpages-unknown-performer' => 'Okänd användare',
 'protectedtitles' => 'Skyddade titlar',
+'protectedtitles-summary' => 'Denna sida listar de titlar som skyddas från att skapas. För en lista över befintliga sidor som är skyddade, se [[{{#special:ProtectedPages}}]].',
 'protectedtitlesempty' => 'Just nu finns inga skyddade sidtitlar med de parametrarna.',
 'listusers' => 'Användarlista',
 'listusers-editsonly' => 'Visa endast användare som redigerat',
@@ -3939,7 +3941,7 @@ Du kan också [[Special:EditWatchlist|använda standardeditorn]].',
 
 # Core parser functions
 'unknown_extension_tag' => 'Okänd tagg "$1"',
-'duplicate-defaultsort' => 'Varning: Standardsorteringsnyckeln "$2" tar över från den tidigare standardsorteringsnyckeln "$1".',
+'duplicate-defaultsort' => '\'\'\'Varning:\'\'\' Standardsorteringsnyckeln "$2" tar över från den tidigare standardsorteringsnyckeln "$1".',
 
 # Special:Version
 'version' => 'Version',
@@ -4032,8 +4034,8 @@ Du bör ha fått [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopia av GNU General Publi
 
 # External image whitelist
 'external_image_whitelist' => '#Lämna den här raden precis som den är<pre>
-#Skriv fragment av reguljära uttryck (bara delen som ska vara mellan //) här nedan
-#Dessa kommer att jämföras med URL:er för externa (hotlinkade) bilder
+#Skriv fragment av reguljära uttryck (bara delen som ska vara mellan //) nedan
+#Dessa kommer att jämföras med URL:er för externa bilder
 #De som matchar kommer att visas som bilder, annars visas bara en länk till bilden
 #Rader som börjar med # behandlas som kommentarer
 #Detta är skiftläges-okänsligt
index 29c44dd..63ba19d 100644 (file)
@@ -1454,7 +1454,7 @@ $1",
 'recentchangesdays-max' => '最多$1天',
 'recentchangescount' => '默认显示的编辑数:',
 'prefs-help-recentchangescount' => '这包括最近更改、页面历史和日志。',
-'prefs-help-watchlist-token2' => '这是你的监视列表网页feed的密钥。任何知道它的人均可以阅读你的监视列表,因此不要分享它。[[Special:ResetTokens|如果需要重置它,请点击这里]]。',
+'prefs-help-watchlist-token2' => '这是你的监视列表网页feed的密钥。任何知道它的人均可以阅读你的监视列表,因此不要分享它。如果需要,[[Special:ResetTokens|您可重置它]]。',
 'savedprefs' => '你的系统设置已保存。',
 'timezonelegend' => '时区:',
 'localtime' => '当地时间:',
index 39fa09e..55e93e2 100644 (file)
@@ -642,48 +642,65 @@ class ParserTest {
                // foo="bar baz"
                // foo=[[bar baz]]
                // foo=bar,"baz quux"
-               $regex = '/\b
-                       ([\w-]+)                                                # Key
-                       \b
-                       (?:\s*
-                               =                                               # First sub-value
-                               \s*
-                               (
-                                       "
-                                               [^"]*                   # Quoted val
-                                       "
+               // foo={...json...}
+               $defs = '(?(DEFINE)
+                       (?<qstr>                                        # Quoted string
+                               "
+                               (?:[^\\\\"] | \\\\.)*
+                               "
+                       )
+                       (?<json>
+                               \{              # Open bracket
+                               (?:
+                                       [^"{}] |                                # Not a quoted string or object, or
+                                       (?&qstr) |                              # A quoted string, or
+                                       (?&json)                                # A json object (recursively)
+                               )*
+                               \}              # Close bracket
+                       )
+            (?<value>
+                               (?:
+                                       (?&qstr)                        # Quoted val
                                |
                                        \[\[
                                                [^]]*                   # Link target
                                        \]\]
                                |
                                        [\w-]+                          # Plain word
+                               |
+                                       (?&json)                        # JSON object
+                               )
+                       )
+               )';
+               $regex = '/'.$defs.'\b
+                       (?<k>[\w-]+)                            # Key
+                       \b
+                       (?:\s*
+                               =                                               # First sub-value
+                               \s*
+                               (?<v>
+                                       (?&value)
+                                       (?:\s*
+                                               ,                               # Sub-vals 1..N
+                                               \s*
+                                               (?&value)
+                                       )*
                                )
-                               (?:\s*
-                                       ,                                       # Sub-vals 1..N
-                                       \s*
-                                       (
-                                               "[^"]*"                 # Quoted val
-                                       |
-                                               \[\[[^]]*\]\]   # Link target
-                                       |
-                                               [\w-]+                  # Plain word
-                                       )
-                               )*
                        )?
                        /x';
+               $valueregex = '/'.$defs.'(?&value)/x';
 
                if ( preg_match_all( $regex, $instring, $matches, PREG_SET_ORDER ) ) {
                        foreach ( $matches as $bits ) {
-                               array_shift( $bits );
-                               $key = strtolower( array_shift( $bits ) );
-                               if ( count( $bits ) == 0 ) {
+                               $key = strtolower( $bits[ 'k' ] );
+                               if ( !isset( $bits[ 'v' ] ) ) {
                                        $opts[$key] = true;
-                               } elseif ( count( $bits ) == 1 ) {
-                                       $opts[$key] = $this->cleanupOption( array_shift( $bits ) );
                                } else {
-                                       // Array!
-                                       $opts[$key] = array_map( array( $this, 'cleanupOption' ), $bits );
+                                       preg_match_all( $valueregex, $bits[ 'v' ], $vmatches );
+                                       $opts[$key] = array_map( array( $this, 'cleanupOption' ), $vmatches[0] );
+                                       if ( count( $opts[$key] ) == 1 ) {
+                                               $opts[$key] = $opts[$key][0];
+                                       }
                                }
                        }
                }
@@ -692,12 +709,16 @@ class ParserTest {
 
        private function cleanupOption( $opt ) {
                if ( substr( $opt, 0, 1 ) == '"' ) {
-                       return substr( $opt, 1, -1 );
+                       return stripcslashes( substr( $opt, 1, -1 ) );
                }
 
                if ( substr( $opt, 0, 2 ) == '[[' ) {
                        return substr( $opt, 2, -2 );
                }
+
+               if ( substr( $opt, 0, 1 ) == '{' ) {
+                       return FormatJson::decode( $opt, true );
+               }
                return $opt;
        }